[PHP] utilisation de cURL et regex
Résolu
okuni
Messages postés
1325
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je me lance dans l'apprentissage du cURL.
J'ai un petit problème lorsque j'utilise une regex pour voir si un texte en particulier se trouve sur la page demandée.
voici mon script :
chaque fois, le résultat n'est pas trouvé donc c'est "titre non trouvé" qui ne s'affiche pas.
Pourtant j'ai vérifié, il y a bien ce que je cherche d'écrit.
Merci pour vos aides :)
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
Je me lance dans l'apprentissage du cURL.
J'ai un petit problème lorsque j'utilise une regex pour voir si un texte en particulier se trouve sur la page demandée.
voici mon script :
//valeur GET
$url = $_GET['url'];
//initialisation du handler
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
//capture du titre
if (preg_match("#<h3 class=\"tgg\"><center>[.+]</center></h3>#", $data))
{
echo 'titre trouvé';
}
else
{
echo 'titre non trouvé';
}
curl_close($ch);
chaque fois, le résultat n'est pas trouvé donc c'est "titre non trouvé" qui ne s'affiche pas.
Pourtant j'ai vérifié, il y a bien ce que je cherche d'écrit.
Merci pour vos aides :)
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
5 réponses
-
preg_match("#<h3 class=\"tgg\"><center>[.+]</center></h3>#", $data)
Essaye en remplaçant "[.+]" par "(.+)" (les crochets servent à faire des classes de caractères). -
ok bete erreur de ma part ^^'
ensuite, j'aimerais récupété uniquement le texte entre les balises mais la, c'est tout le texte qui s'affiche.echo preg_replace('#<h3 class="tgg"><center>(.+)</center></h3>#isU', '<strong>Titre : $1</strong>', $data);
Pourquoi? -
Ok après quelque chippotage, j'y suis arrivé.
merci encore pour ton aide :) -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voila qui devrait te satisfaire ;)
if (preg_match('#<title[^>]*>(.+?)</title[^>]*>#i',$body,$title)) echo 'Titre = '.$title[1]; else echo 'Pas de titre dans la page';