ホームページ  >  記事  >  バックエンド開発  >  php fwrite() を使用してファイルを書き込んだのですが、ファイルの内容が完全に変わってしまったのはなぜですか?

php fwrite() を使用してファイルを書き込んだのですが、ファイルの内容が完全に変わってしまったのはなぜですか?

WBOY
WBOYオリジナル
2016-08-29 08:50:541384ブラウズ

fwrite() を使用してファイルを書き込みましたが、ファイルの内容が完全に変更されたのはなぜですか?
ファイル 2.txt の元の内容は

でした。 リーリー

次に、次のスクリプトを実行しました:

リーリー

結果 2.txt は次のようになりました:

リーリー

どうやって修正すればい​​いですか?

返信内容:

fwrite() を使用してファイルを書き込みましたが、ファイルの内容が完全に変更されたのはなぜですか?
ファイル 2.txt の元の内容は

でした。 リーリー

次に、次のスクリプトを実行しました:

リーリー

結果 2.txt は次のようになりました:

リーリー

どうやって修正すればい​​いですか?

この五芒星は 1 文字あたり 1 バイト以上を占めるため、最初のバイトをカバーするために r を書き、後続のすべての文字が破壊されます。これは、最初の文字と 2 番目の文字の残りのバイトがたまたま 1 バイトしか綴ることができないためです。 out を使用して有効なエンコードを形成します。
ファイルを切り詰めたい場合は、書き込み後に ftruncate する必要があります。

コンテンツを追加したいですか?

http://php.net/manual/ja/func...
fopenの開き方にaを選択した場合に追記されます。

変更する必要はありません。編集者がドキュメントのエンコーディングを誤って認識しただけです。 。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。