php 我用fwrite() 写入了一个文件,怎么文件内容全变了?
PHP中文网
PHP中文网 2017-04-11 10:07:00
[PHP讨论组]

我用fwrite() 写入了一个文件,怎么文件内容全变了?
本来文件2.txt的内容是

★★★★★★★★★★★★

然后我执行了以下脚本:

$res = fopen( "R:/2.txt"  ,"r+" );
fwrite( $res , "r" );
fclose( $res );

结果2.txt 成了:

r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?

请问这是怎么回事?怎么改正?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
PHP中文网

因为这个五角星号一个字符占用不止一个字节,你写了 r 覆盖了第一个字节,导致之后的字符都被破坏了,因为正好第一个字符余下字节和第二字符的第一个字节正好可以拼成一个有效的编码。
你如果想要截断文件的话,应该写完后ftruncate。

天蓬老师

是想追加内容?

http://php.net/manual/en/func...
fopen打开方式选择a的时候为追加写入。

阿神

不用改,没错,只是编辑器错误的识别了文档的编码。。。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号