2013-06-05 6 views
1

Je le code suivant:ECHO variable comprennent newline

<p><?php echo $item['desc']; ?></p> 

Le code tire les éléments suivants de la base de données:

Point 1 
Point 2 
Point 3 

et affiche comme: Point 1 Point 2 Point 3,

Que dois-je faire pour inclure les nouvelles lignes, j'ai essayé d'ajouter/n ou
des balises dans la référence DB, mais cela ne fait aucune différence.

+0

$ Quelle est l'article .. ?? .. ?? tableau – Gautam3164

+0

voulez-vous ajouter newline après chaque point x (item ['desc'])? – Bere

+0

il devrait être \ n, pas/n - juste une correction, pas que cela importe vraiment de toute façon puisque vous devriez utiliser une autre approche indiquée dans les réponses. – luk2302

Répondre

0

Essayez cette

echo str_replace(' ',"\n", $item['desc']); 
0

\ n ne fonctionnera pas parce que la chaîne de l'impression doit être traitée par le navigateur en html. Utilisez plutôt la balise <br>.

3

Peut-être que les nouvelles lignes sont en cours d'impression, mais vous avez besoin qu'elles soient des balises <br>, elles apparaîtront donc comme des sauts de ligne sur la page Web? Vous pouvez utiliser la fonction nl2br() pour que:

<p><?php echo nl2br($item['desc']); ?></p> 
5

Cela devrait fonctionner

<p><?php echo nl2br($item['desc']); ?></p> 

Sinon: -

echo nl2br(str_replace(' ',"\n", $item['desc'])); 
+0

Parfait merci! –

+0

Lequel a travaillé pour vous? – vascowhite

+0

@vascowhite 'nl2br' devrait faire l'affaire +1 pour vous –

3

La nouvelle ligne est inclus. Ce n'est pas affiché dans le navigateur, car le standard HTML le dit. Si vous voulez l'afficher dans le navigateur, remplacez le saut de ligne par <br>, par ex. en utilisant nl2br()

0

Essayez comme

echo str_replace(' ',"<br>", $item['desc']); 
0

Je ne comprenais pas exactement ce que vous voulez, mais probablement quelque chose comme ceci:

$string = "Point 1 Point 2 Point 3"; 

$string = preg_replace("/(point \d+)/i", "\$1\r\n", $string); 

echo $string 

Sortie:

Point 1 
Point 2 
Point 3 

Note: Utilisez uniquement nl2br (voir autres réponses) si les nouvelles lignes sont déjà dans la chaîne mais ne sont pas affichées.

+0

Pas besoin de regex ici, c'est assez cher. 'nl2br()' est l'outil de choix pour exactement ce scénario. – vascowhite

+0

Si les nouvelles lignes sont déjà dans la chaîne, alors oui. Mais je ne suis pas sûr pour cela en lisant la question de l'OP. – enenen

+0

Non, je n'étais pas sûr non plus, je suppose qu'ils étaient comme ma première option travaillé. – vascowhite

0

si votre code dans une ligne comme TEST TEST TEST vous pouvez utiliser preg_replace fonction:

echo preg_replace("{[ ]+}","<br/>",$items['desc']); 

si votre chaîne comme ce TEST 1 TEST 2 ... et votre objectif est: TEST 1 TEST 2 ... etc .. vous pouvez utiliser ce modèle:

$t = preg_match_all("{[\w]+[ ]?[0-9]+}",$items['desc'],$m); 
foreach ($m[0] as $val) { echo $val."<br/>"; }