@ShVad

PHP 5.6 как записывать в файл?

Добрый день

В PHP 5.6 столкнулся с проблемой:
Записываю в существующий файл информацию, потом сразу читаю его, но считывается старая версия файла, изменения считываются после паузы при следующем выполнении скрипта.
Как сделать так, чтобы файл сразу считывался уже с изменениями?

Спасибо
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
@ShVad Автор вопроса
function write_file($file, $content = '')
 {
    $is_writable = TRUE;

    $dir = explode('/', $file);

    if (strpos(end($dir), '.') !== FALSE && isset($dir[count($dir)-1])) {
        unset($dir[count($dir)-1]);
    }

    if (count($dir)) {
        @mkdir(implode('/', $dir), 0777, TRUE);
    }

    if (file_exists($file) && !is_writable($file))
    {
        $is_writable = FALSE;
    }
    
    if ($is_writable && file_put_contents($file, $content))
    {
        return TRUE;
    }
    
    show_error ('Ошибка: Не удается создать файл "'.$file.'".');
    
    return FALSE;
 }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DrunkMaster
@DrunkMaster
Читаете так:
$filename = "$dir/$file";
$handle = fopen("$filename", "r");
$contents = fread($handle, filesize($filename));
fclose($handle);


Записываем в файл и закрываем его
$handle = fopen("$filename", "w");
                    if (fwrite($handle, $contents) === FALSE) {
                        echo "Не могу произвести запись в файл ($filename)<br>";
                        exit;
                    }
    fclose($handle);

Только w поменяйте на нужный вам, а то вы его так перезапишете
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы