在textarea上看不到新行 - 问题是什么?

时间:2010-09-09 13:33:41

标签: php textarea newline nowdoc

我有一个php字符串,其中包含很多要在textarea html元素中显示的信息。

我无法访问该textarea,也无法访问生成它的脚本(如果有的话)。

$somestring = 'first line \nSecond line \nThird line.';

$ somestring因为没有使用trim或filter_var“工作”。没有。

在文本字段上,我得到了\ n因此打印在textarea上,而不是解释。

我可以尝试使用这些新行吗?

提前致谢。

3 个答案:

答案 0 :(得分:7)

尝试使用“(双引号)而不是'(单引号)

包装$ somestring

答案 1 :(得分:3)

\n\r和其他反斜杠转义字符仅适用于双引号和heredoc。在单引号和nowdoc(heredoc的单引号版本)中,它们被视为文字\n\r

示例:

<?php
echo "Hello\nWorld"; // Two lines: 'Hello' and 'World'
echo 'Hello\nWorld'; // One line: literally 'Hello\nWorld'
echo <<<HEREDOC
Hello\nWorld
HEREDOC; // Same as "Hello\nWorld"
echo <<<'NOWDOC'
Hello\nWorld
NOWDOC; // Same as 'Hello\nWorld' - only works in PHP 5.3.0+

PHP manual

中详细了解此行为

修改
单引号和双引号表现不同的原因是因为它们在不同情况下都是需要的。

例如,如果你有一个包含很多新行的字符串,你可以使用双引号:

echo "This\nstring\nhas\na\nlot\nof\nlines\n";

但是如果你要使用带有大量反斜杠的字符串,例如文件名(在Windows上)或正则表达式,你可以使用单引号来简化它并避免因忘记转义反斜杠而出现意外问题:

echo "C:\this\will\not\work"; // Prints a tab instead of \t and a newline instead of \n
echo 'C:\this\would\work'; // Prints the expected string

echo '/regular expression/'; // Best way to write a regular expression

答案 2 :(得分:1)

$somestring = "first line \nSecond line \nThird line.";

http://php.net/types.string&lt; - 非常有用的阅读
这篇文章是PHP知识的基石,没有它就不可能使用PHP 与大多数仅供快速参考的手册页不同,这个页面是每个开发人员都应该学习的页面。