php的换行符我们都知道:\\n ,回车符:\\r,在需要换行时,通常是用“\\r\\n”这个组合。但是为什么我们在使用fwrite写入文件时\\n换行符不起作用呢。我们先看下面这个例子:

<?php
$filename = \'manongjc.txt\';
$str= \'码农教程(www.manongjc.com)欢迎你的到来!\\r\\n在这里你可以学习关于PHP的知识\';
$fh = fopen($filename, \"a\"); //第二个参数a表示追加写入
echo fwrite($fh, $str);
fclose($fh);
?>

执行上面代码,并打开manongjc.txt文件查看并没有换行,回车换行符“\\r\\n”并没有被解析为换行符,而是直接被当作一个字符输出来了。这是为什么呢?

这时候我们就应该思考一下PHP里面单引号与双引号的作用和区别了。关于php单引号与双引号的使用及区别,大家可以查看这篇文章:《php中单引号与双引号定义字符串的区别分析》

其中最主要的区别在于:

②对变量的解析不同

单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。同时单引号也不会解释\\r\\n换行。

所以将以上定义str变量的单引号换成双引号就可解决php fwrite写入文件时换行符\\r\\n不起作用。

正确代码如下:

<?php
$filename = \'manongjc.txt\';
$str= \"码农教程(www.manongjc.com)欢迎你的到来!\\r\\n在这里你可以学习关于PHP的知识\";
$fh = fopen($filename, \"a\"); //第二个参数a表示追加写入
echo fwrite($fh, $str);
fclose($fh);
?>
收藏 打印