PHP \ n转义字符

时间:2011-03-14 22:48:42

标签: php string escaping

为什么php进程无法识别此语句字符串中的\ n转义字符:

在测试2p中回显“测试\”

为什么?

7 个答案:

答案 0 :(得分:5)

我会在这里走出去,猜猜你写了这样一个页面:

<?php

echo " testing \n testing2";

?>

HTML输出如下:

testing testing2

这是因为HTML会缩小空白区域。您需要使用一些HTML元素来使输出看起来像您认为的那样

echo " testing <br /> testing2";

答案 1 :(得分:3)

在HTML上下文中使用时,除了HTML源代码外,\n换行符将不可见,因为HTML使用<br />表示换行符。要转换它们,请使用nl2br()

您还需要小心如何引用字符串。像\n这样的转义序列仅在双引号"strings"中解析。在单引号'strings'中,它们不会被解析。

答案 2 :(得分:3)

行结束字符在HTML中没有任何意义,它应该是PHP输出。

HTML中的下一行是<br/>标记,因此您应该输出:

echo "<br/>";

您也可以通过\n函数将字符串中<br/>的所有匹配项更改为nl2br,如我朋友所述。

答案 3 :(得分:2)

确实如此,请查看源代码。如果要在浏览器中查看,请使用

echo nl2br(" testing \n testing2");

浏览器忽略忽略多余的空格(包括换行符)并将其转换为空格。您需要HTML标记(例如<br />)来手动断行。

答案 4 :(得分:1)

如果您在浏览器中转到“查看来源”,那么您会看到它已插入换行符。但是,在HTML中,换行符被解释为空格并且不会开始换行。正如@Czechnology所说,您希望使用nl2br将换行替换为HTML换行符(<br>)。

当你提出问题时,请记得接受最佳答案。

答案 5 :(得分:1)

因为您的导航器认为您想要显示html 而你想显示纯文本。只需添加一个 标题说明您要显示的内容类型:

header('Content-Type: text/plain');
echo " testing \n testing2";

答案 6 :(得分:-1)

$teststring = ;
echo nl2br($teststring);

并在$teststring

中输入您想要的所有内容