[PHP] utilisation de cURL et regex [Résolu/Fermé]

Signaler
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
-
Messages postés
14595
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 août 2020
-
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 :
//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 :)

5 réponses

Messages postés
18400
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 août 2020
4 202
preg_match("#<h3 class=\"tgg\"><center>[.+]</center></h3>#", $data)

Essaye en remplaçant "[.+]" par "(.+)" (les crochets servent à faire des classes de caractères).
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
121
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?
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
121
Ok après quelque chippotage, j'y suis arrivé.
merci encore pour ton aide :)
Bonjour,

un petit up pour savoir comment tu as résolu ton problème
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
121
Je t'avoue que je ne sais plus. cela fait 3 ans ! ;)
>
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014

Tu as toujours ton script ? Si tu peux partager
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
121
non désolé. Je ne travaille plus du tout sur ce projet.
Quel est ton problème ?
Je souhaite créer un crawler, mais avant cela je veux apprendre a me servir de curl, et la je sais récupérer une page web complète mais je veux utiliser les regex pour récupérer qu'une partie du site mais j'y arrive pas :/ je suis debutant je vais seulement commencer mon bts di en septembre ...
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
121
Regarde le tuto php/mysql sur le site du zéro. Un des chapitres est consacré aux regex ;)
Messages postés
1
Date d'inscription
lundi 26 décembre 2016
Statut
Membre
Dernière intervention
31 décembre 2016

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';
Messages postés
14595
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 août 2020
559
Bonjour
presque 7 ans après, j'espère pour lui (elle) qu'il ne t'attendais plus pour être satisfait ;)