2015-07-14 4 views
0

я делаю следующее:PHP файл не обновляется после FWRITE и fclose

$configurationFile = fopen($configurationFilePath, 'w'); 
$result = fwrite($configurationFile, $newFileContent); 
fflush($configurationFile); 
fclose($configurationFile); 
if ($result) { 
    echo '<pre>'; var_dump(require('file.php')); die(); 
... 

А старые данные отображаются, хотя в моем редакторе или после обновления страницы можно увидеть новое содержание.

Как заставить PHP видеть содержимое нового файла сразу после fclose?

+0

Можете ли вы разместить там, где вы установили $ configurationFile? – engvrdr

+0

@engvrdr добавил, если я понял, что вы правы – Ivan

+0

Попробуйте, если вызывается 'clearstatcache'. – CBroe

ответ

0

Благодаря @engvrdr за подсказку. Проблема была с расширением OPcache, и я закончил с двумя способами:

  1. Отключить OPcache:

    ini_set('opcache.enable', '0');

я написал в начале моего индексного файла, но это может быть настроен для некоторых частных случаев

  1. Сделать скрипт более длинным с помощью sleep() (довольно грубый soluti on)
+0

Извините за поздний ответ, но вы можете отключить кеширование кода операции для точных файлов с файлом черного списка: http://php.net/manual/en/opcache.configuration.php#ini.opcache.blacklist-filename – engvrdr