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 :

Parsage d'un lien [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Points : 107
    Points
    107
    Par défaut Parsage d'un lien
    Bonjour,

    Je souhaite parser ce que contient les balises <a ...</a> pour éventuellement rajouter l'URL de la page avant l'ancre si on est dans un cas de liens ou d'ancres.
    Pour se faire, j'avais fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tFrom=array('@<a href="#(.*)</a>@');
    $tTo=array('<a href="'.$chemin_page.'#\\1</a>');
    $s = preg_replace($tFrom, $tTo, $s);
    Jusque là, tout va bien, sauf que si on rajoute une classe dans cette balise, entre le a de la balise et le href, ça ne fonctionne plus (du fait de l'expression régulière).
    Là où je bloque est de modifier pour avoir un truc :
    @<a href="#(.*)</a>@
    en
    @<a class="<plein de lettres, chiffres et espace>" href="#(.*)</a>@
    class="<plein de lettres, chiffres et espaces>"
    n'est qu'optionnel
    et si je suis trop souple, on perd la délimitation de la balise.

    Bonne journée

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Hello !

    Répété je ne sais combien de fois sur ce forum, il y a bien plus facile que les expressions régulières pour parser un document Html. Pour se faire, on peut utiliser des librairies qui ont été créées à cet effet, comme la classe DomDocument ou SimpleXML.

    Tu peux ainsi très facilement regarder si ton lien contient un '#' ou non avec la fonction strpos.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre régulier Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Points : 107
    Points
    107
    Par défaut
    Re,

    Merci de la réponse rapide.

    Je ne souhaite pas la représentation du HTML en arbre (d'ailleurs, ce qui peut vite devenir lourd), mais changer une chaine en une autre (strpos me dira la position, mais ne fera pas le boulot).
    Je souhaite juste changer, si et seulement s'il y a la présence d'une ancre, le lien ; ex :
    <a href="#truc">truc</a> en <a href="mapage#truc">truc</a> (cette partie fonctionne parfaitement)
    Là où je bloque est quand ça devient :
    <a class="maclasse1 maclasse_2" href="#truc">truc</a> en <a class="maclasse1 maclasse_2" href="mapage#truc">truc</a>
    Bonne journée

  4. #4
    Membre régulier Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Points : 107
    Points
    107
    Par défaut
    Re,

    En si replongeant à tête reposée, c'est tout bête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tFrom=array('@<a(.*)href="#(.*)</a>@');
    $tTo=array('<a\\1href="'.$chemin_page.'#\\2</a>');
    $s = preg_replace($tFrom, $tTo, $s);
    Bonne journée

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

Discussions similaires

  1. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 12h26
  2. [Kylix] pb avec lien symbolique
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 13/12/2002, 22h16
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Tutoriels et liens pour le Borland Database Engine
    Par Community Management dans le forum Paradox
    Réponses: 0
    Dernier message: 25/03/2002, 10h23

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