[RESOLU] Supprimer les paragraphes avec preg_replace

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Supprimer les paragraphes avec preg_replace

Re: Supprimer les paragraphes avec preg_replace

par Elie » 02 févr. 2014, 16:55

* Indique 0, 1 ou plusieurs occurrences du caractère ou de la classe précédente
Effectivement, je voyais pas ca si simple ... Merci de ne pas m'avoir répondu directement mais poussé a comprendre :)

Re: Supprimer les paragraphes avec preg_replace

par jojolapine » 01 févr. 2014, 21:28

C'est cette partie là qu'il faut modifier :

Code : Tout sélectionner

[^>]+ # tout caractère qui n'est pas > une ou plusieurs fois
Plus particulièrement le "+", qui veut dire "un ou plus".
Il te faut donc le remplacer par "0 ou plus" !

Re: Supprimer les paragraphes avec preg_replace

par Elie » 01 févr. 2014, 20:59

Salut Jojo,

Justement, la lecture je l'avais mais je ne sais pas comme dire ca ou ca autre que (>|^>) qui biensur ne marche pas.
Car la effectivement, il faut impérativement que le <p ne soit pas suvi d'un > mais je voudrais soit l'un soit l'autre ...

Je suis callé en PHP mais j'avoue que les regex m'ont toujours laissés perplexe !

Re: Supprimer les paragraphes avec preg_replace

par jojolapine » 01 févr. 2014, 17:15

Bonjour,

Il faudrait que tu essayes de comprendre le fonctionnement de cette expression régulière ;)

là voici commentée :

Code : Tout sélectionner

~ <(p) # caractère < suivit du caractère p capturé [^>]+ # tout caractère qui n'est pas > une ou plusieurs fois > # caractère > (.*?) # n'importe quoi 0 ou plusieurs fois capturé de manière "non-gourmande" (http://www.lumadis.be/regex/tuto_pcre.php#gourmand) </\1> # caractères <, / puis le résultat de la première capture (p) puis > ~xs
Donc là dedans, qu'est-ce qui devrait être changé d'après toi pour autoriser un <p> simple sans attributs ?
Voici un lien pour faire tes tests : http://lumadis.be/regex/test_regex.php?id=2072

Bon courage !

Supprimer les paragraphes avec preg_replace

par Elie » 31 janv. 2014, 15:58

Bonjour,

Je voudrais supprimer les balises <p> grace a un preg_replace.
Dans ma version seul les balises avec une classe s'enleve mais pas juste les <p>
Pouvez-vous me corriger ca ?
preg_replace('#<(p)[^>]+>(.*?)</\1>#s', '$2', $chaine);
Merci,

Elie