3 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
在文件大?。ǎ?/code>
的文檔頁面中
注意:此函數(shù)的結果將被緩存。有關更多詳細信息,請參閱清除統(tǒng)計緩存()。
因此,您必須在編寫新內容后清除緩存:
$fileHandler = fopen($file, "a") or die("Could not append to file!");
fwrite($fileHandler, "This is my third message <br>");
fclose($fileHandler);
clearstatcache();

TA貢獻1780條經(jīng)驗 獲得超4個贊
首先,用于以讀+寫模式打開文件,這意味著它與您的問題無關。然后,正如在其他 anwers 中已經(jīng)提到的,該函數(shù)被緩存,您需要使用才能看到更改。a+filesize()clearstatcache()
作為 + + 的替代方法,您可以使用組合了 3 個函數(shù)的函數(shù)。fopen()fwrite()fclose()file_put_contents()
例:
$file = __DIR__.'/test.txt';
// First we call the function without second parameter
file_put_contents($file, 'This is my first message'.PHP_EOL);
// Following calls use the second parameter with FILE_APPEND`
file_put_contents($file, 'This is my second message'.PHP_EOL, FILE_APPEND);
echo file_get_contents($file);
echo PHP_EOL.'FileSize after first write: ' . filesize($file) . ' bytes' . PHP_EOL;
clearstatcache();
echo '-----------------------'.PHP_EOL;
file_put_contents($file, 'This is my third message'.PHP_EOL, FILE_APPEND);
echo file_get_contents($file);
echo PHP_EOL.'FileSize after append: ' . filesize($file) . ' bytes' . PHP_EOL;
輸出:
This is my first message
This is my second message
FileSize after first write: 51 bytes
-----------------------
This is my first message
This is my second message
This is my third message
FileSize after append: 76 bytes
`

TA貢獻1877條經(jīng)驗 獲得超6個贊
每當您寫入或讀取文件時,PHP 都會緩存更改。所以你必須清除緩存,你可以使用這個函數(shù)來清除PHP緩存的關于文件的信息。clearstatcache()
在這里閱讀更多內容,請 https://www.php.net/manual/en/function.clearstatcache
- 3 回答
- 0 關注
- 156 瀏覽
添加回答
舉報