1

以下脚本打印来自array命名的字符串arr。在arr我尝试插入换行符后\n,我没有看到它。这是为什么 ?

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

5 回答 5

2

在 HTML 中,浏览器不显示\n换行符。如果您查看源代码,您将看到它们显示出来。您可以将它们转换为<br>使用PHP 函数,或通过以下nl2br方式更改您的脚本:

<?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>";
}

如果这对您不起作用,您可以随时使用preHTML 标签pre标签保留换行符,\n并使它们可见。

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

谢谢。:)

于 2013-01-18T03:43:50.003 回答
2

HTML 以相同的方式处理任意数量的所有空白字符。

也就是说,以下内容将在浏览器中呈现为单个空间:

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

为了在 HTML 中呈现实际的断链,您需要在<br>文档中插入一个元素。

于 2013-01-18T03:46:57.153 回答
1

大概您的 PHP 脚本正在生成在 Web 浏览器中查看的 HTML。而且,正如我们所知,HTML 中无关的空白不会在屏幕上呈现。

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

于 2013-01-18T03:50:04.990 回答
0

这应该工作

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

因为在您的 HTML 部分<br />中为换行符工作,\n当您从浏览器一侧看到 HTML 的源代码时,您也可以工作,它会向您显示换行符

于 2013-01-18T03:41:06.560 回答
0

因为换行符在 HTML 中使用<br />. 改为这样做。

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

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

于 2013-01-18T03:42:42.520 回答