帮助中心 >  技术知识库 >  网站相关 >  程序开发 >  PHP fwrite换行写入时换行符不起作用的原因

PHP fwrite换行写入时换行符不起作用的原因

2019-01-17 09:44:50 6178

我们在使用fwrite写入文件时,新手会遇到一个最常见但又必须解决的问题,那就是换行写入。


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


  


<?php

 $filename = 'file.txt';

 $word = '你好!\r\n欢迎来到www.landui.com';

 $fh = fopen($filename, "a"); //w从开头写入 a追加写入

 echo fwrite($fh, $word);

 fclose($fh);

?>

  $word的字符串内加上了回车换行符“\r\n”,但是输出结果并不是预期,这个回车换行符“\r\n”并没有被解析为换行符,而是直接被当作一个字符输出来了。


  为什么会出现这样的情况呢?经研究,原来是单双引号惹的祸!我们把$word定义字符串的单引号“'”换为双引号“"”就可以了。正确的写法如下:



$filename = 'file.txt';

$word = "你好!\r\n欢迎来到www.landui.com";

$fh = fopen($filename, "a"); //w从开头写入 a追加写入

echo fwrite($fh, $word);

fclose($fh);

  


题外话,上述例子里echo fwrite()显示的一个数字,这个数字表示字符串的长度。


知识扩充


用双引号(")定义字符串,PHP 懂得更多特殊字符的转义序列:


转移序列说明


\n换行


\r回车


\t水平制表符


\[/td>反斜线


\$美元符号


\"双引号


\[0-7]{1,3}此正则表达式序列匹配一个用八进制符号表示的字符


\x[0-9A-Fa-f]{1,2}此正则表达式序列匹配一个用十六进制符号表示的字符


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: