2

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

我无权访问该文本区域,也无权访问生成它的脚本(如果有)。

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

$somestring 未与 trim 或 filter_var 一起“工作”。没有。

在文本字段上,我将 \n 打印在 textarea 上,因此没有被解释。

我可以尝试什么来应用这些新行?

提前致谢。

4

3 回答 3

7

尝试用 " (双引号)而不是 ' (单引号)包装 $somestring

于 2010-09-09T13:35:21.733 回答
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 手册中阅读有关此行为的更多信息


编辑:
单引号和双引号行为不同的原因是因为它们在不同的情况下都需要。

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

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
于 2010-09-09T13:44:23.603 回答
1
$somestring = "first line \nSecond line \nThird line.";

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

于 2010-09-14T01:34:13.553 回答