fread が fwrite 後に何も生成できないのはなぜですか?

WBOY
リリース: 2016-06-13 12:52:08
オリジナル
1113 人が閲覧しました

fread が fwrite 後に何も生成できないのはなぜですか?
$file = 'test.txt';
$fileHandle = fopen($file,'w ');
fwrite($fileHandle, '新しく挿入されたテキスト');
$fileContents = fread($fileHandle, filesize($file));
echo $fileContents;
fclose($fileHandle);

マニュアルには、w オプションが指定されている場合、ファイルは読み取りおよび書き込み用に開かれると記載されていますが、これは、ファイルへの書き込み後にファイルを読み取ることができるはずであることを意味しますが、上記のコードは書き込み後に何も表示されません。ファイルは chmodded 777 です。なぜそうなるのか誰か説明してください:D

また、その理由も尋ねられました。
w モードで開くと、読み取り可能になるはずです。
しかし、なぜ fread は fwrite の後に何も生成できないのでしょうか?


-----解決策--------------------------------
私はこれまでにこれを試したことはありませんが、推測できます
1.ポインタ問題
2.IOの問題

書いた後、ポインタがどこにあるか考えてみませんか?ファイルの先頭にある場合、2 番目の書き込みは最初の書き込みより前に書き込まれませんか?
ファイル IO には一般的にバッファリングが含まれており、2 つの操作の間に中断がなければ常に想像を絶する問題が発生します...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート