Preg_replace limitée à l'intérieur de balises
matt_info
Messages postés
1
Statut
Membre
-
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]