Encoder en entités HTML, mais ignorer les balises HTML en PHP
J'ai une chaîne qui pourrait ressembler à ceci
$str = "<p>Me & Mrs Jones <br /> live in <strong style="color:#FFF;">España</strong></p>";
htmlentities($str,ENT_COMPAT,'UTF-8',false);
Comment puis-je convertir le texte en entités HTML sans avoir à convertir les balises HTML?
remarque: j'ai besoin de garder le code HTML intacte
double possible: stackoverflow.com/q/1364933/1032370
OriginalL'auteur ed209 | 2009-12-22
Vous devez vous connecter pour publier un commentaire.
Avertissement: je ne voudrais pas coder toutes les entités, à l'exception de <, > et &. Cela dit, si tu le veux vraiment, ce faire:
Sauf que cette échoue quand il a "2 > 5" dans son balisage
J'attends l'entrée pour être valide HTML déjà. Si il a 2 > 5 dans son balisage, ce ne sera pas traités comme les <<<img src="" &&&& /> n'est pas manipulé correctement.
Votre troisième ligne devrait lire: $str = str_replace(array ("<','>'),array('<','>'), $str);
OriginalL'auteur Evert
Le problème, que vous rencontrez, est que dans des circonstances que vous avez déjà codé '
<
" et ">
" dans votre texte, vous devez filtrer après la conversion.Ceci est similaire à Evert réponse, mais ajoute une étape de plus pour permettre de contenu comme
1 < 2
dans votre balisage:OriginalL'auteur Boldewyn
Une bonne réponse a été posté par Pascal MARTIN
Voir ce DONC sujet
Pour la reprendre, vous pouvez utiliser ce bout de code, pour récupérer une liste de correspondances
character => entity
:OriginalL'auteur JoDev
Je n'ai pas utiliser htmlentities avant, mais il semble un peu comme un version plus robuste de la fonction urlencode (que j'utilise beaucoup). Vous voudrez peut-être essayer:
htmlentities(strip_tags($str,ENT_COMPAT),'UTF-8',false);
Juste comme une petite pépite, si vous souhaitez conserver
<br>
standard carrage retourne, vous pourriez faire ceci:htmlentities(strip_tags(str_replace("<br>","\n",$str,ENT_COMPAT)),'UTF-8',false);
Je sais que c'est quelque chose que j'ai parfois envie de le faire.
Bonne Chance.
OriginalL'auteur bng44270
Si tu veux le convertir en texte seulement, alors essayez ceci:
OriginalL'auteur Sarfraz