在PHP中,我试图创建一个换行符:
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';
之后,我在记事本中打开创建的文件,它逐字写入换行符:
1约翰做1约翰做1约翰做
我尝试过许多不同的\r\n,但没有一个有用。为什么换行符没有变成换行符?
在PHP中,我试图创建一个换行符:
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';
之后,我在记事本中打开创建的文件,它逐字写入换行符:
1约翰做1约翰做1约翰做
我尝试过许多不同的\r\n,但没有一个有用。为什么换行符没有变成换行符?
当前回答
双引号“”之间的字符串进行插值,这意味着它们将转义字符转换为可打印字符。
单引号之间的字符串是字面的,这意味着它们与输入的字符完全相同。
你可以把两者都写在同一行上:
echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";
输出:
$clientid $lastname
1 John Doe
其他回答
对我来说什么都没用。
PHP_EOL
。”\ r \ n;
$NEWLINE_RE = '/(\r\n)|\r|\n/'; // take care of all possible newline-encodings in input file
$var = preg_replace($NEWLINE_RE,'', $var);
对我有用:
$admin_email_Body = $admin_mail_body .'<br>' ."\r\n";
$admin_email_Body .= 'This is line 2 <br>' ."\r\n";
$admin_email_Body .= 'This is line 3 <br>' ."\r\n";
出于某种原因,每一篇关于PHP中的换行转义的文章都没有提到,简单地在单引号字符串中插入换行符就会像你想的那样:
例1。
echo 'foo\nbar';
例1显然没有输出想要的结果,但是,虽然你不能在单引号中转义换行符,但你可以有一个:
例2。
echo 'foo
bar';
示例2恰好具有所需的行为。不幸的是,插入的换行符依赖于操作系统。这通常不是问题,因为web浏览器/服务器将正确地解释换行符,无论它是\r、\r\n还是\n。
显然,如果您计划通过web浏览器和多个操作系统等其他方式分发文件,那么这种解决方案就不理想了。在这种情况下,你应该看到其他答案之一。
注意:使用功能丰富的文本编辑器,您应该能够插入换行符作为二进制字符,在不同的操作系统上表示换行符,而不是在编辑文件的操作系统上。如果所有这些都失败了,只需使用十六进制编辑器插入二进制ascii字符就可以了。
有一个方便的PHP函数用于HTML输出,它在新行中添加<br />标记:
echo nl2br("One line.\n Another line.");
双引号“”之间的字符串进行插值,这意味着它们将转义字符转换为可打印字符。
单引号之间的字符串是字面的,这意味着它们与输入的字符完全相同。
你可以把两者都写在同一行上:
echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";
输出:
$clientid $lastname
1 John Doe
使用chr(13)表示回车,使用chr(10)表示换行
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);