ホームページ  >  記事  >  バックエンド開発  >  fread が fwrite 後に何も生成できないのはなぜですか?

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

WBOY
WBOYオリジナル
2016-06-13 12:52:081109ブラウズ

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 つの操作の間に中断がなければ常に想像を絶する問題が発生します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。