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 :

Retirer une séquence de balises html avec preg_replace


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut Retirer une séquence de balises html avec preg_replace
    Bonjour,

    J'ai une chaîne html de laquelle je veux retirer une séquence de balises <p><img /></p>. Mon code ne filtre rien du tout.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    define('IMG_TAG', "<p><img src='%s' alt='' style='float:right; max-width:300px; padding:10px; border 1px solid black;' /></p>");
    // ... suite du code ...
    $tmp = "<h3>Un joli titre</h3><p><img src='customs/1/pictures/homeImg.png' alt='' style='float:right; max-width:300px; padding:10px; border 1px solid black;' /></p><p>Un texte abondant</p>";
    $pattern = sprintf(IMG_TAG, ".");
    $pattern = "#(".$pattern.")#i";
    $tmp = preg_replace($pattern, '', $tmp);
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il manque le +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = sprintf(IMG_TAG, ".+");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Si tu veux virer toutes les occurrences de <p><img...></p> tu peux faire comme suit :

    Code php : 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
     
    <?php
    $tmp = "<h3>Un joli titre</h3><p>
    <img src='customs/1/pictures/homeImg.png' alt='' style='float:right; max-width:300px; padding:10px; border 1px solid black;' />
    </p>
    <p>Un texte abondant</p><p><img src='customs/1/pictures/homeImg.png' alt='' style='float:right; max-width:300px; padding:10px; border 1px solid black;' /></p>
    une fin trépidante<p>
    <img src='customs/1/pictures/homeImg.png' alt='' style='float:right; max-width:300px; padding:10px; border 1px solid black;' /></p>";
    print "avant :<br/>";
    print $tmp;
    print "<br/><br/><hr/>";
    //
    $pattern = "/<p>((\s|\r\n)*<img.*\/>(\s|\r\n)*)<\/p>?/mi";
    $tmp = preg_replace($pattern, '', $tmp);
    print "après :<br/>";
    print $tmp;

    Nom : 20170525_000.JPG
Affichages : 205
Taille : 65,0 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Merci à vous deux. Je préfère la solution de sabotage qui est celle que je voulais réaliser.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si tu veux vraiment bien faire, tu peux t'intéresser aux balises HTML5.

    Notamment :



    Ces balises sémantiques sont utiles pour l'accessibilité.
    Et l'accessibilité s'adresse tout autant aux personnes handicapées qu'aux séniors

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Oui, merci, je connais, mais je n'en ai pas besoin ici.

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

Discussions similaires

  1. Comment supprimer une balise html avec JS
    Par malimaot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/12/2010, 11h47
  2. [RegEx] Nettoyage de code html avec preg_replace
    Par olbouss dans le forum Langage
    Réponses: 13
    Dernier message: 24/09/2009, 15h03
  3. perte de balises html avec AJAX super bizarre
    Par shadeoner dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/07/2009, 17h23
  4. [RegEx] supprimer une balise html avec son contenu
    Par waldoun dans le forum Langage
    Réponses: 7
    Dernier message: 06/02/2008, 11h19
  5. balise html avec dreamwaver
    Par hammouch dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 27/02/2007, 00h33

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