J'essaie d'utiliser preg_replace pour obtenir des données à partir d'une page distante, mais j'ai un petit problème quand il s'agit de trier le motif.preg_replace hell
function getData($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/\<span class=\"SectionHeader\"\>title\</span>/<br/>/\<div class=\"header2\"\>(.*)\</div\></span\>/",$str,$title);
return $title[1];
}
}
Voici le HTML est avant fini par jeter un million de barres obliques à elle (on dirait que j'oublié une partie ou deux):
<span class="cell CellFullWidth"><span class="SectionHeader">mytitle</span><br/><div class="Center">Event Name</div></span>
Où Nom de l'événement est les données que je veux retourner dans ma fonction.
Merci beaucoup les gars, c'est une douleur dans le cul.
Je ne toucherais pas à cela avec un poteau de dix pieds. Il doit y avoir un moyen plus efficace d'obtenir le titre que de numériser la page entière pour un match. Vous savez que preg_match retournera un tableau s'il a trouvé plus d'une correspondance pour ce critère, est-ce correct? – animuson
J'utiliserais un analyseur html, tel que http://simplehtmldom.sourceforge.net/ – marvin
Comme tant de fois auparavant sur SO, je recommande de ne pas utiliser d'expressions régulières pour analyser le HTML, car elles ne sont pas adaptées à cela. Utilisez un analyseur HTML à la place. –