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 :

Récuperer une chaîne entre deux tags


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut Récuperer une chaîne entre deux tags
    Salut

    j'aimerais récuperer une chaine contenue en tre deux tags.

    pourriez vous m'aider ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    En faisant une recherche vous auriez dû trouver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $string = "début <tag>à capturer</tag> fin.";
    if (preg_match('#<tag>(.*)</tag>#Uis', $string, $m)) {
       echo $m[1];
    }
    Ou une version qui capture toutes les occurences situées entre <tag> et </tag> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $string = "début <tag>à capturer</tag> milieu <tag>à capturer bis</tag> fin.";
    $nbOccurences = preg_match_all('#<tag>(.*)</tag>#Uis', $string, $m);
    if ($nbOccurences > 0) { # Test non nécessaire suivant ce que vous faites
        for ($i = 0; $i < $nbOccurences; $i++) {
            echo $m[1][$i] . '<br/>';
        }
    }

  3. #3
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    merci beaucoup
    :]

  4. #4
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    re-salut

    voilà qu'il me faut des-résoudre mon probleme, en effet, j'en ais un autre du meme accabi.

    voila mon bout de code :

    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
    26
     
    $fichier = "http://www.url-quelconque.fr/fichier-quelconque.html";
     
    $Tag_STR = addslashes('<div id="tagarecuperer">');
    $Tag_STP = addslashes('</div>');
     
    $fp = @fopen($fichier,"r");
    $texte = "";
     
    if($fp)
    {
       while(!feof($fp))
       {
       $texte .= fgets($fp,1024);
       }
     
    	if (preg_match('#'.$Tag_STR.'(.+)'.$Tag_STP.'#i', $texte , $m)) 
    	{ 
    		echo $m[1]; 
    	}
     
    }
    else
    {
    echo("Erreur : Les informations ne peuvent etre récuperées");
    }
    or, quand j'exécute mon code, rien ne se passe. j'ai testé le morceau de reécuperation de $texte, il marche ..

    voyez vous mon erreur ?

    merci, ++ Tix.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Vous n'avez pas besoin d'appliquer addslahes sur $Tag_STR et $Tag_STP d'autant plus que ce traitement est incorrect. (Il manque le fclose également.)

  6. #6
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    merci.

    Voila mon nouveau code

    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
    26
    27
    28
    29
    30
    31
    <?php
     
    $fichier = "http://www.****.fr/bidule.html";
     
    $Tag_STR = '<div id="tag"';
    $Tag_STP = '</div>';
     
    $fp = @fopen($fichier,"r");
    $texte = "";
     
    if($fp)
    {
       while(!feof($fp))
       {
       $texte .= fgets($fp,1024);
       }
     
    	if (preg_match('#'.$Tag_STR.'(.+)'.$Tag_STP.'#Uis', $texte , $m)) 
    	{ 
    		echo $m[1]; 
    	}
     
    }
    else
    {
    echo("Impossible d'ouvrir la page sélectionnée");
    }
     
    fclose($fp);
     
    ?>
    ...qui refuse d'entendre raison, encore.

    voyez vous autre chose ?

    merci, ++ Tix.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    J'ai testé de mon côté et ça fonctionne très bien. Vous devriez enlever l'arobase devant le fopen (pour tester au moins). allow_url_fopen est à on sur votre serveur ? Pas de métacaractères dans le tag ?

  8. #8
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    merci

    bah, écoutez, j'arrive parfaitement à charger mon fichier, le seul truc vien de mon regex apparemment .... je ne sait plus quoi faire.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Vous ne récupérez absolument rien même en éditant la source de ce que génère ce script ? Il n'y pas d'erreurs dans vos balises (ie &lt;div=&quot;tag&quot; par exemple) ? Elles sont bien présentes sur la page distante au moins ? Je ne vois que ça

  10. #10
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    bien, quand je teste mon preg_match, il ne trouve rien. Je n'ais pas une erreur, et je ne récupere strictement rien coté client. voici mon expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Tag_MATCH = '#<div id="affiche"><h1>Actualités - News</h1>(.*)</div>#Uis';
    ...et mes tags sont bien dasn mon fichier externe.

    y voyez vous de quoi se facher ?

    merci, ++ Tix.

  11. #11
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Et le code que tu analyse c'est quoi ?

  12. #12
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    une page Html quelconque... dans le cas présent, une page de news

  13. #13
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Passe le code complet parceque avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    $code = '<div id="affiche"><h1>Actualités - News</h1>toto</div>';
     
    preg_match('#<div id="affiche"><h1>Actualités - News</h1>(.*)</div>#Uis', $code, $match);
     
    print_r($match);
     
    ?>
    Je ne vois pas pourquoi je ne récupererai pas 'toto'

Discussions similaires

  1. récuperer une chaine entre deux crochets
    Par anizlewan dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 01/07/2014, 22h26
  2. Regex : récuperer une chaine entre deux guillemets anglais(")
    Par Phonatacid dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 01/06/2011, 11h02
  3. Remplacer une chaîne de caractère entre deux tags seulement
    Par Olistan dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 08/05/2008, 13h56
  4. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52
  5. Réponses: 14
    Dernier message: 02/05/2005, 18h14

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