-
Funzionamento regex
Ciao a tutti:) ho dei problemi a far funzionare delle regex che in locale non mi danno problemi:
Codice PHP:
<?php
$html = implode('', file('http://watchdelivery.altervista.org/'));
if(preg_match_all("/<li>(.+)<\/li>/",$html,$result))
print_r($result[1]);
?>
Utilizzo da poco il servizio Altervista, quindi mi è venuto il dubbio che ci sia qualche cosa da abilitare,ma il php info mi dà già abilitati i pcre.
Qualche consiglio?
-
Più che un problema di regexp, è un problema relativo alle connessioni esterne.
Da chiarire: qualsiasi percorso che incomincia con http:// va considerato come esterna.
Usa i percorsi locali ( ./index.php, index.php, ../index.html ), dato che vuoi accedere aun file locale.
Inoltre, non so se potrebbe servirti in futuro, fai una ricerca sul forum riguardante le connessioni server2server.
-
grazie della risposta=)!
in realtà mi serve proprio l'html di una pagina esterna.Mi spiego, sto creando un sistema di tracciamento pacchi; quel che fà il programma è fare una richiesta a Bartolini(Ad esempio),ricavare l'html e parsarlo con le regex,per poi inviare i risultati su un'altra pagina:
Codice PHP:
$url='http://as777.bartolini.it/vas/sped_det_show.hsm?referer=sped_numspe_par.htm&Nspediz='.$stringa.'&RicercaNumeroSpedizione=Ricerca';
$html= implode(" ", file($url));
$regexp="/<table.*>Mittente<\/label><\/td>\s+<td>\s+ (\w+\s*\w*).+Destinatario<\/label><\/td>\s+<td>\s+ (\w+\s*\w*).+Distinta\s\w+<\/label><\/td>\s+<td>.+del<\/label> (\d+\/\d+\/\d+).+Fattura.+<\/table>\s+<br>/s";
if(preg_match_all($regexp,$html,$result)){
$_SESSION['partenza']=$result['1']['0'];
$_SESSION['destinazione']=$result['2']['0'];
$_SESSION['data']=$result['3']['0'];
header('location:./result.php?codice='.$to.'&partenza='.$_SESSION['partenza'].'&destinazione='.$_SESSION['destinazione'].'&data='.$_SESSION['data'].'');
}
dove sbaglio?
-
Devi sbloccare le connessioni server2server dal pannello di controllo.
Ciao!
-
Grazie ad entrambi,ora funziona perfettamente!