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

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

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

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

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


当前回答

只有双引号字符串将转义序列\r和\n分别解释为'0x0D'和'0x0A',所以你想要:

"\r\n"

另一方面,单引号字符串只知道转义序列\\和\'。

因此,除非您将单引号字符串与其他地方生成的换行符连接在一起(例如,使用双引号字符串“\r\n”或使用chr函数chr(0x0D).chr(0x0A)),否则在单引号字符串中使用换行符的唯一其他方法是使用编辑器按字面形式键入它:

$s = 'some text before the line break
some text after';

如果您需要某些特定的字符序列(例如\r\n),请确保检查编辑器的换行设置。

其他回答

我还在单引号和双引号中尝试了这种组合。但没有一个奏效。与其使用\n,不如在双引号中使用<br/>。像这样的. .

$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";

使用常量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);
?>

只有双引号字符串将转义序列\r和\n分别解释为'0x0D'和'0x0A',所以你想要:

"\r\n"

另一方面,单引号字符串只知道转义序列\\和\'。

因此,除非您将单引号字符串与其他地方生成的换行符连接在一起(例如,使用双引号字符串“\r\n”或使用chr函数chr(0x0D).chr(0x0A)),否则在单引号字符串中使用换行符的唯一其他方法是使用编辑器按字面形式键入它:

$s = 'some text before the line break
some text after';

如果您需要某些特定的字符序列(例如\r\n),请确保检查编辑器的换行设置。

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

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

你应该这样使用:

"\n"

你可能还想看看PHP EOL。