PHP - 如何在表单提交的文本中打印'\ n','\ r','\ r \ n'和标签?

时间:2012-02-20 22:08:36

标签: php unicode

所有

我正在尝试构建一个完整的UTF-8网络应用程序,允许用户提交文本内容。

如果我将复制在Web表单(textarea)上的文本存储到PHP字符串$str中,然后打印此变量,则显然会打印文本,而不会显示新行,回车符或标签。

打印文本时,我有办法查看这些特殊字符吗?

例如,如果用户输入:

Two roads diverged in a yellow wood,
And sorry I could not travel both

我希望能够打印:

Two roads diverged in a yellow wood,\nAnd sorry I could not travel both

5 个答案:

答案 0 :(得分:3)

将它们回送到文本区域,或用<pre>标签包围它们。否则,使用nl2br按下数据并使用自定义数据处理标签:

function tab2nbsp($str)
{
    return str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;', $str); 
}

答案 1 :(得分:1)

当你复制文本时,它应该保留回车和源代码中的新行以及存储信息的任何文件/数据库中的新行。如果你问如何在HTML页面上显示它以便它呈现换行,尝试php nl2br($string)函数。

答案 2 :(得分:1)

使用PHP的nl2br向您的换行符添加<br /> - 标记。 http://php.net/manual/de/function.nl2br.php

您还可以将内容放在<pre> - 代码中,或使用CSS属性white-space:pre http://www.css4you.de/Texteigenschaften/white-space.html

答案 3 :(得分:1)

使用<pre>标记显示预格式化文本块(带有换行符,制表符或多个空格的文本)。此标记保留了这些元素。

您可能也对[{3}}函数感兴趣。

答案 4 :(得分:0)

使用这个,当在数据库中输入记录时,这会将br转换为nl,所以我将这个转换回html所以我们必须将它转换为br ....

nl2br($str);