无法添加换行符。为什么会这样?

时间:2013-01-18 03:39:42

标签: php line-breaks

以下脚本打印名为array的{​​{1}}字符串。来自arr的回声后,我尝试使用arr插入换行符,但我看不到它。那是为什么?

\n

5 个答案:

答案 0 :(得分:2)

在HTML中,浏览器不显示\n换行符。如果您查看源代码,您将看到它们显示。您可以使用the nl2br PHP function将其转换为<br>,或者从以下位置更改脚本:

<?php
$arr = array("ghazal","shayari","silence","hayaat");
echo $arr[0];
echo $arr[1];
foreach($arr as $var) {
  echo $var;
  echo "\n";
}

到此:

<?php
$arr = array("ghazal","shayari","silence","hayaat");
echo $arr[0];
echo $arr[1];
foreach($arr as $var) {
  echo $var;
  echo "<br>";
}

如果这对您不起作用,您可以随时使用pre HTML tag。 <{1}}代码会保留pre换行符,并使其可见。

如果这有帮助,请点击此问题旁边的复选标记,将此答案标记为正确。

感谢。 :)

答案 1 :(得分:2)

HTML会以相同的数字处理所有空白字符。

也就是说,以下内容将全部呈现为浏览器中的单个空格:

echo "\n";
echo "\t";
echo "         ";
echo "  \n\n\n  ";

要在HTML中呈现实际的 linkbreak ,您需要在文档中插入<br>元素。

答案 2 :(得分:1)

据推测,您的PHP脚本正在生成在Web浏览器中查看的HTML。而且,正如我们所知,HTML中无关的空格无法在屏幕上呈现。

生成纯文本(header("Content-type: text/plain"))或输出,而不是'\n',在HTML 中呈现换行符(例如<br />)。< / p>

答案 3 :(得分:0)

这应该有效

foreach($arr as $var) {
  echo $var;
  echo "<br />";
}

因为在您的HTML部分<br />适用于换行符,当您从浏览器端看到HTML的源代码时,\n也可以正常工作

答案 4 :(得分:0)

因为换行符是使用<br />在HTML中呈现的。这样做。

foreach($arr as $var) {
    echo $var, '<br />';
}

另一种方法是将输出包装在<pre></pre>中,它会评估空白和换行符,就像你当前正在做的那样。