ECHO变量包括换行符

时间:2013-06-05 11:44:48

标签: php mysql database

我有以下代码:

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

代码从数据库中提取以下内容:

Point 1
Point 2 
Point 3

并将其显示为:Point 1 Point 2 Point 3,

我需要做些什么来包含新行,我尝试将/ n或
标签添加到数据库引用中,但它没有任何区别。

8 个答案:

答案 0 :(得分:5)

这应该有效

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

否则: -

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

答案 1 :(得分:3)

可能正在打印换行符,但您需要将它们设为<br>个标记,以便它们在网页上显示为换行符?您可以使用函数nl2br()

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

答案 2 :(得分:3)

包含换行符。它只是没有在浏览器中显示,因为HTML标准是这样说的。如果您希望它显示在浏览器中,请将换行符更改为<br>标记,例如使用nl2br()

答案 3 :(得分:0)

试试这个

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

答案 4 :(得分:0)

\ n将无效,因为您打印的字符串必须由浏览器以html格式处理。 请改用<br>标记。

答案 5 :(得分:0)

尝试

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

答案 6 :(得分:0)

我无法理解你想要什么,但可能是这样的:

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

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

echo $string

输出:

Point 1 
Point 2 
Point 3

注意:如果新行已在字符串中但未显示,则仅使用nl2br(请参阅其他答案)。

答案 7 :(得分:0)

如果您的代码在TEST TEST TEST之类的一行中,您可以使用preg_replace函数:

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

如果您的字符串如此TEST 1 TEST 2 ...并且您的目标是: 测试1 测试2 ......等等.. 你可以使用这种模式:

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