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 :

Analyse de code html


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de erehcab
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 215
    Par défaut Analyse de code html
    Bonjour à tous,

    Je suis à la recherche de la bonne expréssion régulière qui me permettera de résoudre mon problème mais mes connaissances dans le domaine ne sont pas suffisantes pour y arriver tous seul je crois bien. Je vous soumets le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <li class="page_item page-item-7 current_page_item"><a href="http://localhost/mgc/V1/?page_id=7" title="La Prévention">La Prévention</a>
    	<ul>
    		<li class="page_item page-item-137"><a href="http://localhost/mgc/V1/?page_id=137" title="Le service Prévention">Le service Prévention</a>
    			<ul>
    				<li class="page_item page-item-139"><a href="http://localhost/mgc/V1/?page_id=139" title="La MGC et la prévention">La MGC et la prévention</a></li>
    				<li class="page_item page-item-141"><a href="http://localhost/mgc/V1/?page_id=141" title="Promouvoir une meilleure santé pour chacun">Promouvoir une meilleure santé pour chacun</a></li>
    			</ul>
    		</li>
    	</ul>
    </li>
    Ce code est généré par une fonction wordpress qui s'occupe d'afficher un menu.
    Il faudrait que j'arrive à supprimer dans ce code le deuxième <ul> qui s'ouvre (qui corresspond à une sous sous catégorie) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <ul>
          <li class="page_item page-item-139"><a href="http://localhost/mgc/V1/?page_id=139" title="La MGC et la prévention">La MGC et la prévention</a></li>
          <li class="page_item page-item-141"><a href="http://localhost/mgc/V1/?page_id=141" title="Promouvoir une meilleure santé pour chacun">Promouvoir une meilleure santé pour chacun</a></li>
    </ul>
    Pour ce faire j'ai essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $reg = '#(<li class[^>]+><a href[^>]+>[^<]+</a></li><ul><li class[^>]+><a href[^>]+>[^<]+</a>)(<ul>[^<]+</ul>)#iD';
     
    $rep = '$1';
     
    $menu = preg_replace($reg, $rep, $menu);
    En sachant que la variable $menu contient tous le code HTML du menu renvoyé par une fonction Wordpress.

    Voilà si quelqu'un peut me donner un petit coup de main ça serait super !

  2. #2
    Membre expérimenté Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Par défaut
    Hello,
    l'utilisation d'explode est surement plus simple dans ce cas.
    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
     
    $str = '<li class="page_item page-item-7 current_page_item"><a href="http://localhost/mgc/V1/?page_id=7" title="La Prévention">La Prévention</a>
            	<ul>
            		<li class="page_item page-item-137"><a href="http://localhost/mgc/V1/?page_id=137" title="Le service Prévention">Le service Prévention</a>
            			<ul>
            				<li class="page_item page-item-139"><a href="http://localhost/mgc/V1/?page_id=139" title="La MGC et la prévention">La MGC et la prévention</a></li>
            				<li class="page_item page-item-141"><a href="http://localhost/mgc/V1/?page_id=141" title="Promouvoir une meilleure santé pour chacun">Promouvoir une meilleure santé pour chacun</a></li>
            			</ul>
            		</li>
            	</ul>
            </li>';
     
    $result = '';
    $strSearch = '<ul>';
    $arrUL = explode($strSearch,$str);
    $resul = $arrUL[0].$strSearch.$arrUL[1].'</li></ul></li>';
    print_r($resul);

  3. #3
    Membre confirmé Avatar de erehcab
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 215
    Par défaut
    Oui bonne idée, je teste ça de suite !

    Ca ne fonctionne pas comme je le voudrais, en faite je ne récupère pas le sous menu.

  4. #4
    Membre expérimenté Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Par défaut
    Pour le sous menu un truc comme ca devrais faire :

    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
     
    $str = '<li class="page_item page-item-7 current_page_item"><a href="http://localhost/mgc/V1/?page_id=7" title="La Prévention">La Prévention</a>
            	<ul>
            		<li class="page_item page-item-137"><a href="http://localhost/mgc/V1/?page_id=137" title="Le service Prévention">Le service Prévention</a>
            			<ul>
            				<li class="page_item page-item-139"><a href="http://localhost/mgc/V1/?page_id=139" title="La MGC et la prévention">La MGC et la prévention</a></li>
            				<li class="page_item page-item-141"><a href="http://localhost/mgc/V1/?page_id=141" title="Promouvoir une meilleure santé pour chacun">Promouvoir une meilleure santé pour chacun</a></li>
            			</ul>
            		</li>
            	</ul>
            </li>';
     
    $result = '';
    $strSearch = '<ul>';
    $arrUL = explode($strSearch,$str);
    $arrSousMenu = explode('</ul>',$arrUL[count($arrUL)-1]);
    $result = '<ul>'.$arrSousMenu[0].'</ul>';
    print_r($result);

Discussions similaires

  1. [RegEx] Analyse de code HTML d'une liste déroulante
    Par sigmoun dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2009, 13h57
  2. [RegEx] Analyser du code html
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2009, 20h38
  3. [MySQL] Analyse de code HTML
    Par safari25 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2009, 17h06
  4. Analyse de code HTML et simplification par l'XML
    Par Punky65250 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 10/11/2005, 10h24
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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