[PHP] utilisation de cURL et regex

Résolu
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 :)
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

5 réponses

  1. preg_match("#<h3 class=\"tgg\"><center>[.+]</center></h3>#", $data)

    Essaye en remplaçant "[.+]" par "(.+)" (les crochets servent à faire des classes de caractères).
    1. 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?
      1. Ok après quelque chippotage, j'y suis arrivé.
        merci encore pour ton aide :)
        1. Bonjour,

          un petit up pour savoir comment tu as résolu ton problème
          1. Je t'avoue que je ne sais plus. cela fait 3 ans ! ;)
          2. @okuniTu as toujours ton script ? Si tu peux partager
          3. non désolé. Je ne travaille plus du tout sur ce projet.
            Quel est ton problème ?
          4. 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 ...
          5. Regarde le tuto php/mysql sur le site du zéro. Un des chapitres est consacré aux regex ;)
        2. 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';
          
          1. Bonjour
            presque 7 ans après, j'espère pour lui (elle) qu'il ne t'attendais plus pour être satisfait ;)