PHP – 如何创build一个换行符?

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

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

之后,我在记事本中打开创build的文件,并从字面上写入换行符:

1 John Doe \ r \ n 1 John Doe \ r \ n 1 John Doe \ r \ n

我已经尝试了\r\n许多变化,但没有任何工作。 为什么不是换行变成换行符?

只有双引号string将转义序列\r\n分别解释为“0x0D”和“0x0A”,所以您需要:

 "\r\n" 

另一方面, 单引号string只知道转义序列\\\\

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

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

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

对于独立于平台的行结束,可以使用预定义的PHP_EOL常量 ,如下所示:

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

PHP中的“echo”命令将输出以原始htmlforms发送到浏览器,因此即使在双引号中,浏览器也不会将其parsing为两行,因为HTML中的换行符无意义。 这就是为什么你需要使用:

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

当使用“回声”,或改为使用fwrite …

 fwrite([output text]."\n"); 

这将输出HTML换行符代替“\ n”。

使用常量PHP_EOL来获取正确的字符,而不pipe平台。

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); ?> 

双引号之间的string""插入,意味着它们将转义字符转换为可打印字符。

单引号之间的string是字面意思,意味着它们与input的字符完全相同。

你可以在同一行:

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

输出:

 $clientid $lastname 1 John Doe 

其实\r\n是输出的html端。 使用这些字符,您可以在html代码中创build一个换行符,使其更具可读性:

 echo "<html>One 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 

如果你用下面的代码replace整个脚本,它也会更具可读性:

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

你应该使用这个:

 "\n" 

你也可能想看看PHP EOL 。

w3school提供这种方式:

 echo nl2br("One line.\n Another line."); 

通过使用这个function,你可以做到这一点..我尝试了上面说的其他方式,但他们不会帮助我..

出于某种原因,在PHP中每一个询问换行符的post都没有提到仅仅插入一个换行符到单引号string中的情况,这就是你所想的:

例1

  echo 'foo\nbar'; 

例1显然不打印所需的结果,但是,虽然它是真的,你不能在单引号中换行,你可以有一个:

例2

  echo 'foo bar'; 

示例2具有完全所需的行为。 不幸的是插入的换行符依赖于操作系统。 这通常不是问题,因为Web浏览器/服务器将正确地解释新行是否是\ r,\ r \ n或\ n。

很显然,如果您打算通过其他方式,然后通过networking浏览器分发文件并将其分发到多个操作系统,则此解决scheme并不理想。 在这种情况下,你应该看到其他答案之一。

注意:使用function丰富的文本编辑器,你应该能够插入一个换行符作为一个二进制字符,表示换行符不同于编辑该文件的操作系统。 如果一切都失败了,只需使用hex编辑器插入二进制ASCII字符就可以了。

换行符为(13),换行符为(10)

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

使用PHP nl2br获取文本string中的换行符。

$ text =“Manu是个好孩子(input)他可以很好的编码。

echo nl2br($ text);

结果。

马努是个好孩子

他可以很好地编码。

我也在单引号和双引号内尝试了这种组合。 但没有一个工作。 不要在双引号中使用\n 。 喜欢这个..

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

对于任何echo语句,我总是使用双引号内的<br>