Preg_replace limitée à l'intérieur de balises
matt_info
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je souhaiterais développer un petit outil qui remplace les guillemets doubles par l'entité équivalente (") sauf lorsque ces guillemets sont à l'intérieur de balises html.
Ex :
<strong style="color:red;">Je suis entre "guillemets"</strong>. Et toi "aussi"<strong style="color:red;">Les "guillemets"</strong>. (résultat à l'écran, pas le code HTML source qui lui a par exemple <strong> pour une balise strong)
Devrait donner :
<strong style="color:red;">Je suis entre "guillemets"</strong>. Et toi "aussi"<strong style="color:red;">Les "guillemets"</strong>.
J'ai essayé plein de regexp notamment /&quot;(?=.*[^(<)])/ mais pas moyen de trouver la bonne.
Merci de votre aide !
Je souhaiterais développer un petit outil qui remplace les guillemets doubles par l'entité équivalente (") sauf lorsque ces guillemets sont à l'intérieur de balises html.
Ex :
<strong style="color:red;">Je suis entre "guillemets"</strong>. Et toi "aussi"<strong style="color:red;">Les "guillemets"</strong>. (résultat à l'écran, pas le code HTML source qui lui a par exemple <strong> pour une balise strong)
Devrait donner :
<strong style="color:red;">Je suis entre "guillemets"</strong>. Et toi "aussi"<strong style="color:red;">Les "guillemets"</strong>.
J'ai essayé plein de regexp notamment /&quot;(?=.*[^(<)])/ mais pas moyen de trouver la bonne.
Merci de votre aide !
A voir également:
- Preg_replace limitée à l'intérieur de balises
- Télécharger simulateur de peinture intérieur gratuit - Télécharger - Divers Photo & Graphisme
- Ecran telephone cassé de l'interieur ✓ - Forum Samsung
- Ecran casse de l'intérieur - Forum Samsung
- Logiciel aménagement intérieur gratuit - Guide
- Peut on mettre une parabole à l'intérieur - Forum TV & Vidéo
1 réponse
Salut salut,
J'en suis pas très fière mais c'est un petit bout de script fonctionnel d'une fonction dont je me servais : les deux chaines de départ sont pour les tests :
Le mieux pour toi est de concaténer directement, je ne sais plus pourquoi je mettais ça dans un tableau
Si tu veux des précisions n'hésite pas.
Résolu? ===> [RESOLU]
J'en suis pas très fière mais c'est un petit bout de script fonctionnel d'une fonction dont je me servais : les deux chaines de départ sont pour les tests :
<?php $chaine="\"guillemet\"<td align=\"right\">Objectif \"guillemet\":</td><td><textarea name=\"objectif\" cols=\"50\" rows=\"10\">\"guillemet\"</textarea></td>\"guillemet\""; $chaine2=$chaine="<td align=\"right\">Objectif \"guillemet\":</td><td><textarea name=\"objectif\" cols=\"50\" rows=\"10\">\"guillemet\"</textarea></td>"; $tab=explode("<",$chaine2); $save=array(); $count1=count($tab); for($i=0;$i<$count1;$i++){ $tab2=explode(">",$tab[$i]); if($i==0){ $save[$i][0]=(!empty($tab2[0])) ? str_replace("\"","'",$tab2[0]) : ""; }else{ $count2=count($tab2); if($count2>1){ $save[$i][0]="<".$tab2[0].">"; $save[$i][1]=str_replace("\"","'",$tab2[1]); }else{ $save[$i][0]="<".$tab2[0].">"; } } } $str=""; for($i=0;$i<count($save);$i++){ for($j=0;$j<count($save[$i]);$j++){ $str.=$save[$i][$j]; } } echo htmlentities($str); ?>
Le mieux pour toi est de concaténer directement, je ne sais plus pourquoi je mettais ça dans un tableau
Si tu veux des précisions n'hésite pas.
Résolu? ===> [RESOLU]