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 :

Besoin d'aide pour une regex (html) [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de benjamin122
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 25
    Par défaut Besoin d'aide pour une regex (html)
    Bonjour ,

    Je suis à la recherche d'une solution pour ma regex suivante : J'essaie de récuperer le contenu d'une balise div dans une page Html tirée de la fonction ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $html = file_get_contents("http://www.monsite.com")
    $nb =preg_match('#<div id="TEST">(.*?)</div>#', $html, $matches);
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="TEST">
      Bob l'éponge est vraiment le plus malin .<br><br>
        <a style="font-weight:bold;" href="javascript:show_more();">Tous&gt;&gt;&gt;</a>
    </div>

    J'essaie donc d'encadrer le contenu entre les 2 div dans ma variables matches. Mais évidemment ça ne marche pas sinon je ne solliciterai pas votre précieuse aide .

    Tout commentaire sera le bienvenu


    ps : Nombreux sont les tuto que j'ai lu sur les regex je ne viendrais pas demander si je ne connaissais pas la matiere , généralement je m'en sors sans trop de soucis mais ici je cale depuis le matin.





    Benjamin, étudiant en programmation

  2. #2
    Membre éclairé Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 275
    Par défaut
    essaies avec preg_match_all et vois si tu n'aurais pas le résultat dans le code source de ta page
    des fois , on voit un résultat blanc sur la page html, mais , a cause des balises qui ont été effacées, il peut y avoir des résultats cachés dans la source
    il y a aussi des problemes avec les sauts et retour ligne, des fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $order=array("\r\n","\n","\r");//on "serre" pour eviter les erreurs
    $resultat=str_replace($order, "", $la_source);
    et des fois aussi , des erreurs a cause des symboles et des retranscriptions bizarres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $orderA=array('Â','’','“','”');
    $orderB=array(' ', '&apos;','&ldquo;','&rdquo;');
    $letextefinal=str_replace($orderA, $orderB, $letexte);

  3. #3
    Membre averti Avatar de benjamin122
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 25
    Par défaut
    Bonjour ,


    Merci d'avoir pris le temps de répondre. Cepandant ta solution ne semble pas résoudre mon problème . Pour ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $order=array("\r\n","\n","\r");//on "serre" pour eviter les erreurs
    $resultat=str_replace($order, "", $la_source);
    J'ai besoin de récuperer la syntaxe également càd que j'aimerai récuperer également les \n etc.. , j'ai quand même essayé pour voir si le probleme venait de là mais apparemment ça ne change rien.


    Pour la 2e solution n'existe t'il pas une fonction en php pour les caractere spéciaux style utf8_encode/decode qui pourrait gérer plus de cas que ceux que tu as cité? arretez moi si je me trompe car ça n'a pas l'air de marcher ...

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Un document HTML ou XML ne se parse pas à coup de regexp mais avec des outils adaptés, par exemple DOMDocument.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti Avatar de benjamin122
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 25
    Par défaut
    Merci de m'aiguiller Bovino J'ai lu attentivement les infos sur DOMDocument. J'en avais déja entendu parler sans trop m'interresser mais ce coup ci je me lance dedans . Si par hasard quelqu'un connaitrait un bon tuto ou alors plus particulièrement des informations sur la fonction Query qui permet de faire des recherches dans un doc de type DOMDocument.

    J'ai déja fait quelques test mais je n'arrive qu'a retirer que quelques informations

    par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $divs= $Dom->query('//div/@id');
    ici ça me récupère tout les id des div dans mon fichier html. Mais ca m'interreserait de savoir comment par exemple retirer ce que le div encadre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <div id="test">Bob l'éponge est le meilleur </div>
    donc j'aimerai retirer ici bob l'éponde est le meilleur.
    Voila si quelqu'un saurait me donner un lien , une idée sur quoi je peux lancer mes recherches ca serait sympa.


    ps : je ne sais pas si ca se fait de relancer un sujet qui est différent de mon 1er post mais bon arretez moi si je fais une gourde

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    heuuu strip_tags ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Besoin d'aide pour une regex
    Par vallica dans le forum Langage
    Réponses: 3
    Dernier message: 20/09/2006, 08h50
  2. Besoin d'aide pour une requete
    Par jnc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 11h54
  3. Création requete besoin d'aide pour une date
    Par royrremi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/07/2004, 22h03
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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