IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérifier la présence d'une chaine de caractères dans une page web


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Par défaut Vérifier la présence d'une chaine de caractères dans une page web
    Bonjour,

    J'aimerai tester la présence d'une chaine de caractères dans une page web.

    Je m'explique, lorsque je recherche "gffdgdfgfdgdsdfgher" dans google, j'obtiens "Aucun document ne correspond aux termes de recherche spécifiés"

    (http://www.google.fr/search?q=gffdgdfgfdgdsdfgher)

    Dans cet exemple, j'aimerai tester la présence de "Aucun document ne correspond" dans cette page avec un test me retournant 1 quand present, et 0 quand absent par exemple et ce, en supposant que cette chaine de caractère peut se déplacer ou elle veut au fur et à mesure du temps (1ere ligne, 2eme ligne...).

    C'est un exemple, le site en question n'est pas google et la requete est en méthode post.

    J'utilise donc Curl pour se faire avec le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?
    		$variablespost = "VAR1=mot1&VAR2=mot2";
    		$ch1 = curl_init ("http://www.sitecible.com/page.php");
    		$fp2 = fopen ("file.txt", "w");
    		$fp3 = fopen ("header.txt", "w");
    		curl_setopt ($ch1, CURLOPT_FILE, $fp2);
    		curl_setopt ($ch1, CURLOPT_HEADER, 0);
    		curl_setopt ($ch1, CURLOPT_WRITEHEADER, $fp3);
    		curl_setopt ($ch1, CURLOPT_FOLLOWLOCATION, 1);
    		curl_setopt ($ch1, CURLOPT_REFERER, "http://www.google.fr/");
    		curl_setopt ($ch1, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    		curl_setopt ($ch1, CURLOPT_POSTFIELDS , $variablespost);
    		curl_setopt ($ch1, CURLOPT_POST , 1);
    		curl_exec($ch1);
    		curl_close($ch1);
    		$test1 = strpos ($fp2, 'CHAINE RECHERCHEE');
    		fclose($fp2);
    		fclose($fp3);
    echo $test1;
     
    ?>
    Mais là, çà mache pas DU TOUT :-(

    Quelqu'un voit mon (mes) erreur(s) ? :-)

  2. #2
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Ton erreur vient probablement de la chaine recherchée.

    Pour afficher le contenu de $test1 utilise var_dump() plutot, strpos retourne FALSE quand il ne trouve pas la chaine. Fait attention aussi, car strpos() peut aussi retourner 0 (0 !== FALSE).

    Donc pour tester utilise plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (strpos($contenu, 'chaine recherchee') !== FALSE)
    {
       echo 'Chaine trouvée';
    }
    Maintenant pour ton problème, strpos() prend une chaine de caractère en premier paramètre, et non pas un fil descriptor ... php.net -> strpos().
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Par défaut
    Bonjour et merci beaucoup pour ta réponse.

    Malheureusement, ça ne veut tjs pas passer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    <?
    		$variablespost = "VAR1=mot1&VAR2=mot2";
    		$ch1 = curl_init ("http://www.sitecible.com/page.php");
    		$fp2 = fopen ("file.txt", "w");
    		$fp3 = fopen ("header.txt", "w");
    		curl_setopt ($ch1, CURLOPT_FILE, $fp2);
    		curl_setopt ($ch1, CURLOPT_HEADER, 0);
    		curl_setopt ($ch1, CURLOPT_WRITEHEADER, $fp3);
    		curl_setopt ($ch1, CURLOPT_FOLLOWLOCATION, 1);
    		curl_setopt ($ch1, CURLOPT_REFERER, "http://www.google.fr/");
    		curl_setopt ($ch1, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    		curl_setopt ($ch1, CURLOPT_POSTFIELDS , $variablespost);
    		curl_setopt ($ch1, CURLOPT_POST , 1);
    		curl_exec($ch1);
    		curl_close($ch1);
     
    if (strpos($fp2, 'CHAINE RECHERCHEE') !== FALSE) {  echo 'Chaine trouvée'; }
     
     
    		fclose($fp2);
    		fclose($fp3);

  4. #4
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Essaie ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    	$variablespost = "VAR1=mot1&VAR2=mot2";
    	$ch1 = curl_init ("http://www.sitecible.com/page.php");
    	$fp2 = fopen ("file.txt", "w");
    	$fp3 = fopen ("header.txt", "w");
    	curl_setopt ($ch1, CURLOPT_FILE, $fp2);
    	curl_setopt ($ch1, CURLOPT_HEADER, 0);
    	curl_setopt ($ch1, CURLOPT_WRITEHEADER, $fp3);
    	curl_setopt ($ch1, CURLOPT_FOLLOWLOCATION, 1);
    	curl_setopt ($ch1, CURLOPT_REFERER, "http://www.google.fr/");
    	curl_setopt ($ch1, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    	curl_setopt ($ch1, CURLOPT_POSTFIELDS , $variablespost);
    	curl_setopt ($ch1, CURLOPT_POST , 1);
    	curl_exec($ch1);
    	curl_close($ch1);
     
    	$fp2_content = fread($fp2, filesize('file.txt'));
    	if (strpos($fp2_content, 'CHAINE RECHERCHEE') !== FALSE)
    	{ 
    		echo 'Chaine trouvée';
    	}
     
    	fclose($fp2);
    	fclose($fp3);
    ?>
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2011, 11h36
  2. Réponses: 2
    Dernier message: 26/11/2005, 14h44
  3. Récupérer une chaine de caractère dans une page
    Par BrunS dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2005, 15h28
  4. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 12h51
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo