Dans htmlentities, comment encoder sélectivement les symboles afin qu'ils n'encodent pas les <
et >
de tags mais encodent &
?PHP htmlentities
Répondre
utiliser Just:
<?php
$string = str_replace('&', '&', $string);
Référez-this pour plus de détails sur str_replace de documents officiels.
Essayez quelque chose comme ceci:
$string = htmlentities($string);
$string = str_replace(array('<','>'), array('<', '>'), $string);
à la documentation officielle, htmlentities et str_replace
err ... dans le deuxième exemple, vous avez oublié un paramètre – thejh
Wow, et qui a dû être édité .. Merci. –
@Col On dirait que le post original voulait utiliser htmlentities pour encoder tout sauf < and > –
Vous ne recevez pas une option « partiellement encode »; S'il y a des caractères particuliers que vous voulez échapper ou non, vous devrez le faire manuellement. Par exemple, pour faire ce que vous dites vous voulez:
str_replace('>', '>', str_replace('<', '<', htmlentities($s)))
Qu'est-ce que vous essayez de faire, si? Ce qui précède semble très peu susceptible d'être utile. "
caractères dans le balisage seront toujours échappés, mangling valeurs d'attribut. En général, il est également douteux, car à moins que vous ne lui fournissiez l'argument charset approprié, les caractères non-ASCII de la chaîne deviendront des références d'entité HTML incorrectes. Il est généralement préférable d'utiliser htmlspecialchars()
, ce qui ne concerne que les quelques caractères qui sont vraiment spéciaux et qui ont besoin d'être échappés en HTML. Si tout ce que vous voulez faire est d'échapper le caractère &
vous pouvez le faire avec un simple str_replace('&', '&', $s)
mais encore une fois, cela remplacerait encore les esperluettes qui font partie d'une référence d'entité ou de caractère valide. Êtes-vous sûr de vouloir faire ça? Essayez-vous simplement de réparer des esperluettes non échappées incorrectement utilisées? Si c'est le cas, vous pouvez essayer une regex pour sélectionner toute utilisation d'un &
qui n'est pas une référence d'entité/caractère valide.
- 1. Php DOMDocument Htmlentities problème
- 2. PHP: en utilisant preg_replace avec htmlentities
- 3. Filtrage d'URL en php, filter_var ou htmlentities
- 4. php htmlentities pour décoder le textarea
- 5. htmlentities équivalent en JSP?
- 6. JSON htmlentities javascript
- 7. PHP: htmlentities ne fonctionne pas avec la variable
- 8. Décodez htmlEntities en remplissant Zend Form
- 9. Forme Zend et filtre Zend HtmlEntities
- 10. Modifier le style de devis par défaut pour htmlentities
- 11. htmlentities PHP() sur l'entrée avant insertion de DB, au lieu de la sortie
- 12. En vb2005.net existe-t-il une fonction qui fonctionne comme la fonction php "htmlentities"
- 13. En utilisant PHP, comment puis-je appliquer HTMLentities() à une référence arrière dans un appel preg_replace()?
- 14. Empêcher parcourir pour rendre le HTML lors de l'utilisation de la fonction htmlentities() en PHP
- 15. Comment afficher les balises html converties par htmlentities PHP en div en utilisant jQuery?
- 16. Définir le jeu de caractères par défaut pour htmlentities()
- 17. empêcher les htmlentities de détruire les caractères utf8 ಠ_ಠ
- 18. Comment encoder des textes en dehors de la balise <pre></pre> avec htmlentities()? (PHP)
- 19. Est-il actuellement "sûr" d'utiliser les flèches de htmlentities à la place des images fléchées?
- 20. Trouver/remplacer des htmlentities en utilisant la chaîne d'outils linux standard?
- 21. Problème d'affichage de JQuery et PHP
- 22. Question de validation de formulaire PHP?
- 23. PHP soumettre problème
- 24. Netbeans PHP autocomplete
- 25. php erreur xml
- 26. PHP Tidy & balises de fermeture requête
- 27. Codage XML PHP
- 28. PHP & MySQL - Problème d'erreur de conversion de tableau à chaîne
- 29. caractères spéciaux à l'entité html en utilisant php
- 30. Filtrage PHP Formulaire Entrée
Parlez-vous de ".:;,!?"? Si oui, pourquoi voulez-vous les encoder? Ou parlez-vous des guillemets? – thejh
1. N'utilisez jamais les htmlentities. 2. n'encodez jamais rien à côté de '<' and '>', '&' et guillemets. –
La bonne solution à ce problème est susceptible d'être "Oubliez les entités de codage et assurez-vous juste que vous déclarez le codage de caractères que vous utilisez": http://www.w3.org/International/O-charset – Quentin