Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 11 sur 11
  1. #1
    Invité de passage
    Inscrit en
    septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 5
    Points : 1
    Points
    1

    Par défaut supprimer <a href...</a> par regex dans pages html.

    Bonjour,
    Je ne suis pas expert en regex et ca fait quelques heures que je me casse la tête pour esssayer de remplacer automatiquement tous les liens dans une page HTML ( de '<a href=....blabla.....jusqua </a>') par rien.
    Quelqu'un aurait t'il une fonction deja prête qui boucle tous les liens d'une page pour les supprimer (la page HTML est contenue dans une variable donc je n'ai pas besoin de fopen pour envoyer le html a la fonction).

    Merci d'avance à tous ceux qui pourront m'aider.
    Julien

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    1 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : août 2005
    Messages : 1 182
    Points : 1 667
    Points
    1 667

    Par défaut

    si tu veux supprimer juste le lien :
    Code :
    1
    2
    3
    4
    5
     
    $string = "ton texte";
    $pattern = array("/<a(.[^>])+>/","/<\/a>/");
    $remplacement = array("","");
    echo preg_replace($pattern,$remplacement,$string);
    ;-)
    http://cdemarche.developpez.com/

    Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...

  3. #3
    Invité de passage
    Inscrit en
    septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    Merci pour ta réponse mais ca n'a pas l'air de fonctionner et me laisse le HTML tel quel (comme ci je faisais echo $html .
    voici un apercu du code HTML en entrée :
    $test = "blabla <a href=\"http://www.test.com\">texte lien</A> texte qui reste <A href=\"http://www.test2.com\">lein texte 2</A> texte qui reste ";


    Je voudrais seulement garder pour cet exemple : blabla texte qui reste texte qui reste.

    La sortie HTML (afficher source sur I.E) de ton code me donne :
    blabla <a href="http://www.test.com">texte lien</A> texte qui reste<A href="http://www.test2.com">lein texte 2</A> texte qui reste

    Je pense que ta solution pourrait marché mais je suis assez incompétent pour me servir de regex avec preg_replace et adapé ou modifié ce code pour cet exemple.

    Merci beaucoup en tout cas.
    Julien

  4. #4
    Membre habitué Avatar de BGDC
    Inscrit en
    septembre 2003
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 102
    Points : 118
    Points
    118

    Par défaut

    Salut,

    regarde je t'ai trouvé cette page en esperant qu'elle puisse te servir : http://www.phpinfo.net/regex/

  5. #5
    Invité de passage
    Inscrit en
    septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    merci de ton aide, j'avais deja trouvé cette page mais je n'arrive pas à modifier l'une de ces fonctions pour l'adapter à mon cas.

    Merci quand même
    Julien

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    1 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : août 2005
    Messages : 1 182
    Points : 1 667
    Points
    1 667

    Par défaut

    Code :
    1
    2
    3
    4
     
    $test = "blabla <a href=\"http://www.test.com\">texte lien</a> textes qui reste <a href=\"http://www.test2.com\">lein texte 2</a> texte qui reste";
     
    echo preg_replace("`(<a[^>]*>)(.*)(<\/a>)`Ui", "",$test);
    J'espère que ça te va...
    http://cdemarche.developpez.com/

    Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...

  7. #7
    Invité de passage
    Inscrit en
    septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    merci pour ton aide, j'ai testé mais ca n'a pas l'air de fonctionner, la sortie affiche le code sans aucun changement, as tu une idée ?

    Julien

  8. #8
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    1 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : août 2005
    Messages : 1 182
    Points : 1 667
    Points
    1 667

    Par défaut

    non je ne vois pas, chez moi , ça fonctionne avec PHP5
    je ne sais pas trop si ça joue... mais je crois qu'il faut faire gaffe aux quotes quand tu utilises les regexp PCRE
    http://cdemarche.developpez.com/

    Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...

  9. #9
    Membre habitué
    Homme Profil pro Lionel Lebeau
    Inscrit en
    septembre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Nom : Homme Lionel Lebeau
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : septembre 2005
    Messages : 84
    Points : 107
    Points
    107

    Par défaut

    On va essayer plus simple:
    Code :
    1
    2
    $test = "blabla <a href=\"http://www.test.com\">texte lien</a> texte qui reste <a href=\"http://www.test2.com\">lien texte 2</a> texte qui reste ";
    $test = preg_replace("/<a href(.*?)<\/a>/si", "", $test);

  10. #10
    Invité de passage
    Inscrit en
    septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    nikel ca marche d'enfer.
    Merci Merci Merci beaucoup pour ton aide !

    A+
    Julien

  11. #11
    Invité régulier
    Homme Profil pro
    Inscrit en
    avril 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2005
    Messages : 27
    Points : 9
    Points
    9

    Par défaut

    Merci ! 7 ans après, ça m'a aidé !!!!

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •