Maison > développement back-end > tutoriel php > php 我用fwrite() 写入了一个文件,怎么文件内容全变了?

php 我用fwrite() 写入了一个文件,怎么文件内容全变了?

WBOY
Libérer: 2016-08-29 08:50:54
original
1443 Les gens l'ont consulté

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

<code>★★★★★★★★★★★★</code>
Copier après la connexion
Copier après la connexion

然后我执行了以下脚本:

<code>$res = fopen( "R:/2.txt"  ,"r+" );
fwrite( $res , "r" );
fclose( $res );</code>
Copier après la connexion
Copier après la connexion

结果2.txt 成了:

<code>r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?</code>
Copier après la connexion
Copier après la connexion

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

回复内容:

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

<code>★★★★★★★★★★★★</code>
Copier après la connexion
Copier après la connexion

然后我执行了以下脚本:

<code>$res = fopen( "R:/2.txt"  ,"r+" );
fwrite( $res , "r" );
fclose( $res );</code>
Copier après la connexion
Copier après la connexion

结果2.txt 成了:

<code>r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?</code>
Copier après la connexion
Copier après la connexion

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

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

是想追加内容?

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

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

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal