|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre émérite
![]() Inscription : avril 2005 Messages : 988 ![]() |
Bonjour,
Dans ma BD, j'ai un champ texte (de type longtext) qui me permet de stocker un bloc. Ce bloc peut contenir du texte (avec mise en forme) ou bien des images, d'où la présence de balises HTML : img, p, ... Lorsque je fais ma requete et que j'affiche ce bloc, pas de problème. Mais ce que je voudrais c'est transformer les accents de mon bloc en appliquant la fonction htmlentities() [ è -> è | é -> é ...] Le hic, c'est que ça va également "transformer" mes balises <img ...> en <img ... > Auriez-vous une solution ? Je précise que je ne sais pas par avance le nombre de balises HTML du bloc. Merci. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2003 Messages : 3 717 ![]() |
Essayer de faire joujou avec la fonction str_replace ?
ca va être long, puisqu'il va faloir le faire pour chaque caractère spécial, mais je vois que ca ... |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Ben... c'est simple ;o)
tu commence par transformer tout les caracteres que tu ne veux pas transformer en une chaine spéciale (par exemple remplacer < par ¤¤lt¤¤ puis > par ¤¤gt¤¤) puis tu appelle htmlentities, puis a nouveau le remplacement contraire du 1er pour retrouver les balises. |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Autre solution non testée :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : avril 2005 Messages : 988 ![]() |
J'ai bien pensé au str_replace() ou bien à inserer directement les codes é, à, directement dans le champ SQL.
Mais c'était lourd... Merci Fladnag, ça à l'air de fonctionner ainsi. Je vais faire d'autres tests encore. Par contre je ne connaissais pas la fonction get_html_translation_table() |
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : avril 2005 Messages : 988 ![]() |
Après divers tests, cela fonctionne parfaitement !
J'ai aussi supprimé le guillemet (pour les classes, id, ...). Merci
|
|
|
00
|
|
|
#7 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
N'est-ce pas précisément l'utilité de html_special_chars() ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : août 2005 Messages : 361 ![]() |
bravo pour la solution de flanag
perso j'aurais fais une expression reguliere pour extraire les balise s du texte ensuite j'aurais boucler sur le retour de mon expression pour chaque valeur qui ne commence pas par < j'applique html_entities
__________________
Le but de tout developpeur OO est de devenir une référence. Mon avatar est un ambigramme, les curieux peuvent le retourner ;-) Aider <> Faire a la place de!!! |
|
|
00
|
|
|
#9 |
|
Membre émérite
![]() Inscription : avril 2005 Messages : 988 ![]() |
htmlspecialchars() fait la même que chose que htmlentities() non ?
__________________
|
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Citation:
La doc le dit tres bien : http://fr.php.net/fr/htmlspecialchars http://fr2.php.net/fr/htmlentities
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com