Bonjour,

J'aimerai afficher sur mon site du texte qui contient une mise en forme (espace / retour à la ligne).
Ces caractères ne sont pas interprétés en html du coup, je cherche comment faire avec php.
Je suppose qu'il existe une fonction avec php pour transformer ces caractères spéciaux en balise html.

Par exemple, le texte brut:
Liste à compléter:
    * pomme
    * poire
    * fraise

Solution:



Liste à compléter:<br />
nbsp;nbsp;    * pomme<br />
nbsp;nbsp;    * poire<br />
nbsp;nbsp;    * fraise<br />
<br />
Solution:<br />


en gros, quelque chose qui donnerait le résultat de la balise <pre> .

Quelqu'un aurait il une solution ?
A brûle-pourpoint je pense à str_replace().

Les sauts de ligne sont identifiables par \n en unix et \r sous windows.

Ce qui donne
$donnee_convertie = str_replace("\n", "<br/>", $donnee_brute);
$donnee_convertie = str_replace("  ", "$nbsp;&nbsp;", $donnee_convertie);/* dans le premiers couple de guillements: 2 espaces */


La doc de str_replace
Modifié par Greg_Lumiere (16 Nov 2016 - 09:23)
Bonjour.

Moi je pense à la propriété CSS white-space qui peut afficher les espaces et les retours à la ligne tels quels...

Smiley smile
Modifié par Zelena (16 Nov 2016 - 09:55)
pour htmlentities() , ça n'a aucun effet. j'ai regardé un peu partout mais rien pour m'aider.
concernant str_replace(), j'ai lu que c'était pas terrible niveau performance mais ça marche.
$desc=nl2br($link["description"]);
$desc = str_replace("  ", "$nbsp&nbsp", $desc);


avec white-space, le texte n'est pas ajusté à la taille du cadre. obligé d'afficher une barre déroulante.

j'imagine qu'il y a d'autres façon de faire. je changerai si je trouve mieux.

Merci pour votre aide.