我正在尝试编写一个回显字符串的php脚本,它不能识别那里的行尾函数。
e.g
echo "thank you \n "
echo "for coming over"
\n
被忽略,它将整行打印为thank you for coming over
。
对于以下内容得到了相同的结果:
echo "thank you ".PHP_EOL.;
echo "for coming over".PHP_EOL.;
答案 0 :(得分:23)
有不同的解决方法:
echo '<pre>'; // pre-formatted text, \n should work
echo "thank you \n ";
echo "for coming over";
echo '</pre>';
header('Content-Type: text/plain');
echo "thank you \n ";
echo "for coming over";
您的浏览器现在可以正确地将输出读取为文本。
echo "thank you <br>\n ";
echo "for coming over";
因此输出总是取决于您想要输出的内容。是文字吗?是HTML吗?它是HTML中的一些文本吗?根据您的需要,您应该注意格式和格式。
答案 1 :(得分:17)
如果您在浏览器中执行此操作,请将\n
替换为<br />
。文件换行符不会在HTML页面中呈现,除非通过CSS指定或者它们包含在某些标记中。您也可以选择将文件类型更改为text/plain
,但我认为不希望这样。
答案 2 :(得分:5)
试试这个 通常你可以使用
echo "thank you <br>";
echo "for coming over<br>";
并在文件处理时
echo "thank you ".PHP_EOL."";
echo "for coming over".PHP_EOL."";
答案 3 :(得分:2)
如果您想在html中打印包含eol的文字,请{i} {} {/ p>
$str = "thank you \n ";
$str .= "for coming over";
nl2br($str);
它将在所有eols之前添加HTML换行符。
答案 4 :(得分:0)
从浏览器检查网页的来源,会有一个新行。由于在HTML中,忽略了换行符,制表符或空格等空格,因此您无法在浏览器中看到它们。您需要使用<br />
或
等来打印您想要的内容。