Sauter à la ligne: quels choix?

Invité
Invité n'ayant pas de compte PHPfrance

07 oct. 2005, 15:53

Bonjour à tous,

Je sais bien que c'est un sujet maintes fois abordé, mais j'ai fait plusieurs tentatives qui ont échoué.

Je n'arrive pas à faire la différence entre "/n", "n2lbr", "str_replace ". Quelqu'un peut-il m'expliquer dans quels cas les utilise-t-on chacun? Je pourrais peut-être l'appliquer à mon cas précis.

Mammouth du PHP | 1776 Messages

07 oct. 2005, 16:02

\r\n ==> c'est le retour à la ligne, mais alors je saurais pas différencier \n et \
nl2br ==> fonction qui convertit automatiquement les retour à la ligne en br d'une variable.
str_replace ==> pour remplcaer du texte par un autre texte dans une variable

Mammouth du PHP | 19672 Messages

07 oct. 2005, 16:10

SAlut, alors allons y un par un:
  1. Ce n'est pas /n mais \n : ça indique un retour de ligne dans le code, mais ça n'apparaitra pas à l'affichage, seulement dans la source. Si j'écris : <p>Une première phrase.</p><p>Une autre phrase avec \nune rallonge</p> comme il s'agit d'éléments de blocs, à l'affichage, j'aurai bien deux lignes, mais le code source affichera le tout sur deux lignes coupées à des endroits différents : l'affichage coupera après le </p> mais dans la source, on aura le retour après le "\n";
  2. nl2br() est une fonction de PHP poour remplacer automatiquemetnt les "\n" par des "<br />" : la même chaîne que ci-dessus sera cette fois affichée sur trois lignes, coupées après le </p> et le <br />. Voir la doc sur ce sujet
  3. str_replace() est une fonction de PHP qui permet de changer des éléments dans une chaine de caractère en remplaçant tout ou partie d'un élément par un autre. Voir la doc sur ce sujet
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

07 oct. 2005, 16:17

str_replace ==> pour remplcaer du texte par un autre texte dans une variable
Je ne vois pourquoi c'est utilisé pour des sauts à la ligne dans ce cas (j'ai vu un post là-dessus sur le forum) :?:

Si j'ai <? echo $truc["machin"] ?> et que les résultats s'affichent : truc1 truc2 truc3.

Mais je veux qu'ils s'affichent:
truc1
truc2
truc3

J'ai déjà essayé
echo $truc["machin"]."\n";
echo nl2br ($truc["machin"]);
Mais aucune des deux ne marchent. Vous en connaissez d'autres? :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 oct. 2005, 16:56

$truc["machin"], il contient quoi ?
Si tu as

Code : Tout sélectionner

truc1 truc2 truc3
à l'écran, dans le source HTML, tu as quoi ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

07 oct. 2005, 18:15

J'ai trouvé. Zeus avait raison : c'était un problème de html :oops:

Dans le code ça générait:
<td>truc1</td>
<td>truc2</td>
<td>truc3</td>

Et j'ai fait en sorte que ça donne:
<td>truc1 <br />
truc2 <br />
truc3 <br /></td>

Merci pour votre aide :D