com'è possibile che l'esecuzione dello script si ferma mentre sta lavorando su un'espressione con preg_match_all senza dare nessun errore?![]()
il pattern è questo
$pattern_a[1]='#<a[^>]+href ?= ?"([^"]+)"[^>]*>((.|\s)*?)</a>#i';
com'è possibile che l'esecuzione dello script si ferma mentre sta lavorando su un'espressione con preg_match_all senza dare nessun errore?![]()
il pattern è questo
$pattern_a[1]='#<a[^>]+href ?= ?"([^"]+)"[^>]*>((.|\s)*?)</a>#i';
non capisco proprio![]()
guardate un pò questo semplice codice, arresta l'esecuzione dello script senza dire niente
Codice PHP:
$html = file_get_contents( 'http://www.prosieben.de/club_community/community/icqspecial/download/' );
$pattern_a = '#<a[^>]+href ?= ?"([^"]+)"[^>]*>((\s|.)*?)?</a>#i';
preg_match_all($pattern_a,$html,$tag);
print_r($tag);
il problema sta nel riconoscimento dell'anchor text.
infatti se al posto di ((.|\s)*?)? metto (.*?) funziona, il problema è che cosi non va a prendere l'anchor text che ha anche caratteri di new line [\t\n\r]
come faccio?![]()
ho pensato anche di mettere [^<]+ nell'anchor solo ceh cosi non va a prendere i link che presentano per esempio delle immagini nell'anchor '<img src' ecc
intanto ho pensato di fare cosi: trasformo tutti i caratteri di \t\r\n in spazi cosi il codice html sta tutto su una riga e il pattern per l'anchor posso lasciarlo cosi (.*?)
aspetto cmq suggerimenti per anchor su più righe..![]()