首页 > 开发 > PHP > 正文

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

2024-05-04 21:50:31
字体:
来源:转载
供稿:网友

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

  1. <?php 
  2. $filename = 'file.txt'
  3. $word = '你好!/r/n欢迎来到www.Vevb.com'
  4. $fh = fopen($filename"a"); //w从开头写入 a追加写入 
  5. echo fwrite($fh$word); 
  6. fclose($fh); 
  7. ?> 

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

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

  1. $filename = 'file.txt'
  2. $word = "你好!/r/n欢迎来到www.Vevb.com"
  3. $fh = fopen($filename"a"); //w从开头写入 a追加写入 
  4. echo fwrite($fh$word); 
  5. fclose($fh); 

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

知识扩充:

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

转移序列说明

/n换行

/r回车

/t水平制表符

/[/td>反斜线

/$美元符号

/"双引号

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表