est ce que la fonction nl2br

Eléphant du PHP | 254 Messages

26 avr. 2007, 14:15

permet aussi de conserver les "espaces"
J'ai un cas qui se pose :
la base est enrichie à l'aide d'un fichier excel importé en CSV.
Pour conserver les sauts de lignes, j'utilise la fonction
<? print nl2br($row_sql['texte']);?>
Mais je me rends compte qu'une mise en forme :

Code : Tout sélectionner

Titre - item1 - item2
N'est pas conservée et ça donne ça :

Code : Tout sélectionner

Titre - item1 - item2
Comment considérer les espaces ????
J'ai l'impression que ça fait un trim aussi
Merci de votre aide !
:D

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

26 avr. 2007, 14:27

nl2br() ne fait que transformer les \n (retour chariot en texte) en <br> (balise de retour à la ligne en html) elle ne modifie pas autres choses.

Quant à l'exemple que tu as donné, concerne les tabulations de item1 et item2 et ça n'a rien avoir avec nl2br.

si tu veux afficher le format d'origine du texte, tu dois utiliser la balise <pre> </pre> et non nl2br()

Exemple:
<?PHP
 print  "<pre>" . $row_sql['texte'] . "</pre>"; 
?>
Le texte d'origine sera affiché telquel:

Code : Tout sélectionner

Titre - item1 - item2
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 avr. 2007, 14:56

En complément de ce qu'a dit sadeq, c'est en fait le navigateur qui va interpréter deux espaces consécutifs (ou plus) dans ton source comme un seul à l'affichage. De même une tabulation sera considéré comme un espace par le navigateur :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 254 Messages

26 avr. 2007, 15:15

merci beaucoup !
Je ne connaissais pas en effet !