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

高洛峰
发布: 2016-10-20 14:45:05
原创
1617 人浏览过

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

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

  

<?php
 $filename = &#39;file.txt&#39;;
 $word = &#39;你好!\r\n欢迎来到www.webkaka.com&#39;;
 $fh = fopen($filename, "a"); //w从开头写入 a追加写入
 echo fwrite($fh, $word);
 fclose($fh);
?>
登录后复制

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

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

  

$filename = &#39;file.txt&#39;;
$word = "你好!\r\n欢迎来到www.webkaka.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}此正则表达式序列匹配一个用十六进制符号表示的字符


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!