SanCi

PHP fwrite换行写入时换行符不起作用的原因
在使用fwrite写入文件时,新手会遇到一个最常见但又必须解决的问题,那就是换行写入。  php的换行符我们都知道...
扫描右侧二维码阅读全文
27
2017/09

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

在使用fwrite写入文件时,新手会遇到一个最常见但又必须解决的问题,那就是换行写入。
  php的换行符我们都知道:\n ,回车符:\r,在需要换行时,通常是用“\r\n”这个组合。但是为什么我们在使用fwrite写入文件时\n换行符不起作用呢。我们先看下面这个例子:

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


随机一言(显示内容与本文关)
Last modification:September 29th, 2018 at 11:37 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment