Problème d'affichage de caractère

Problème d'affichage de caractère - PHP - Programmation

Marsh Posté le 03-06-2015 à 13:49:59    

Hello,
 
Je fais face à un problème que je n'avais pas encore rencontré...
 
J'ai un texte dans une variable qui contient :
 

Code :
  1. $texte="01. The Meader (Beak> )<br/>
  2. 02. The Broken Window (Beak> )<br/>
  3. 03. When We Fall (<Kaeb)<br/>
  4. 04. There's No One [ft. Jonwayne] (<Kaeb)";


 
Liste de titres de groupes qui s'appellent "Beak>" et "<Kaeb"  :heink:  
Bref forcément ça met un bazar pas possible vu que "<Kaeb" est visiblement interprété comme une balise html par le navigateur
 
Si j'utilise un classique htmlentities ou un htmlspecialchars ça ne va pas car du coup ça affiche toutes les balises...
 
Bref comment je peux me sortir de ce cas ?
 
Thanks !
 
Edit :
 
J'ai trouvé une solution qui consiste à transformer < en &lt; et > en &gt;  mais bon c'est pas tellement satisfaisant.


Message édité par glouf le 03-06-2015 à 14:25:57
Reply

Marsh Posté le 03-06-2015 à 13:49:59   

Reply

Marsh Posté le 04-06-2015 à 15:22:06    

Tout dépend d'où vient $texte...
 
S'il vient d'une source où tu as déjà les caractères < et >, cela ne va pas être simple.
 
Si jamais tu n'as que <br/> dans $texte, tu pourrais faire le workflow suivant :
1. Remplacer <br/> par \n dans $texte
2. Appliquer htmlentities/htmlspecialchars à $texte
3. Appliquer nlbr à $texte (remplace EOL par <br/> ).
 
En adaptant un peu ce workflow, tu peux jouer sur les substitutions...
 
Sinon avec plein de regex en gérant tous les cas possibles.

Reply

Marsh Posté le 04-06-2015 à 16:30:21    

Le "problème" ici, c'est qu'il n'y en a pas.
 
C'est effectivement un comportement normal étant donné le contenu de la chaîne $texte
 
Donc comme l'a dit bbalet, "tout dépend d'où vient $texte"

Reply

Marsh Posté le 08-06-2015 à 06:45:48    

Le $texte provient d'une table mysql. Il y-a en effet un petit workflow où les auteurs saisissent des textes via un mini wysiwyg. Il peut y-avoir des liens, du gras, de l'italique et des retours à la ligne en html donc.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed