我有一个 php 字符串,其中包含要在 textarea html 元素中显示的大量信息。
我无权访问该文本区域,也无权访问生成它的脚本(如果有)。
$somestring = 'first line \nSecond line \nThird line.';
$somestring 未与 trim 或 filter_var 一起“工作”。没有。
在文本字段上,我将 \n 打印在 textarea 上,因此没有被解释。
我可以尝试什么来应用这些新行?
提前致谢。
尝试用 " (双引号)而不是 ' (单引号)包装 $somestring
\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 手册中阅读有关此行为的更多信息
编辑:
单引号和双引号行为不同的原因是因为它们在不同的情况下都需要。
例如,如果你有一个包含很多新行的字符串,你会使用双引号:
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
$somestring = "first line \nSecond line \nThird line.";
http://php.net/types.string <--阅读这篇文章非常有用
,它是 PHP 知识的基石,没有它就不可能使用 PHP。
与大多数仅供快速参考的手册页不同,这一页是每个开发人员都应该牢记的。