1

我有以下代码:

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

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

Point 1
Point 2 
Point 3

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

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

4

8 回答 8

5

这应该工作

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

否则:-

echo nl2br(str_replace(' ',"\n", $item['desc']));
于 2013-06-05T11:49:10.813 回答
3

也许正在打印换行符,但您需要它们作为<br>标签,所以它们会在网页上显示为换行符?您可以使用该功能nl2br()

<p><?php echo nl2br($item['desc']); ?></p>
于 2013-06-05T11:49:04.470 回答
3

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

于 2013-06-05T11:49:28.793 回答
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仅当新行已在字符串中但未显示时才使用(请参阅其他答案)。

于 2013-06-05T11:54:24.443 回答
0

试试喜欢

echo str_replace(' ',"<br>", $item['desc']);
于 2013-06-05T11:51:02.663 回答
0

如果您的代码像 TEST TEST TEST 这样的一行代码,您可以使用preg_replace函数:

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

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

$t =  preg_match_all("{[\w]+[ ]?[0-9]+}",$items['desc'],$m);
foreach ($m[0] as $val) { echo $val."<br/>"; }   
于 2013-06-05T12:08:30.953 回答
0

尝试这个

echo str_replace(' ',"\n", $item['desc']);
于 2013-06-05T11:47:24.917 回答
0

\n 将不起作用,因为您打印的字符串必须由浏览器以 html 处理。改用<br>标签。

于 2013-06-05T11:47:57.900 回答