在PHP中,我试图创建一个换行符:

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

之后,我在记事本中打开创建的文件,它逐字写入换行符:

1约翰做1约翰做1约翰做

我尝试过许多不同的\r\n,但没有一个有用。为什么换行符没有变成换行符?


当前回答

使用预定义的PHP_EOL常量:

echo $clientid, ' ', $lastname, PHP_EOL;

常量值将根据执行PHP的操作系统的行结束符来设置。在Linux上,它将是“\n”;在Windows上,它将是“\r\n”。

其他回答

实际上\r\n是输出的html部分。使用这些字符,你可以在html代码中创建换行符,使其更具可读性:

echo "<html>First line \r\n Second line</html>";

将输出:

<html>First line
Second line</html>

查看页面将:

First line Second line

如果你真的想这样做,你只需要用""引号修复单引号:

echo "\r\n";

否则,如果你想拆分文本,在我们的示例'第一行'和'第二行'中,你必须使用html代码:<br />:

First line<br />Second line

这将输出:

First line
Second line

此外,如果您将整个脚本替换为:

echo "$clientid $lastname \r\n";

使用预定义的PHP_EOL常量:

echo $clientid, ' ', $lastname, PHP_EOL;

常量值将根据执行PHP的操作系统的行结束符来设置。在Linux上,它将是“\n”;在Windows上,它将是“\r\n”。

浏览器不会将换行符解析为两行,因为在HTML中换行符没有任何意义。这就是为什么当需要在HTML中添加新行时,必须添加一些标记,<br>是最简单的一个:

echo [output text]."<br>\n";

这将输出HTML换行符。

请注意,无论如何添加新行都是个好主意,这样在检查页面源代码时就有了可读的HTML。

使用常量PHP_EOL来获得正确的字符,无论使用什么平台。

http://us3.php.net/manual/en/reserved.constants.php

一个简单的用法示例:

<?php
$data = 'First line' . PHP_EOL .
        'Second line' . PHP_EOL .
        'Third line';

file_put_contents("filename.txt", $data);
?>

使用chr(13)表示回车,使用chr(10)表示换行

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);