Проблема с записью файла PHP

#php

#php

Вопрос:

Я пытаюсь выполнить запись в файл на PHP, чтобы кэшировать вывод небольшой части кода.

         ob_start();
        echo "Hello";
     $fp = fopen("cache/ttcache.php", 'w');
        fwrite($fp, ob_get_contents());
        fclose($fp);
        ob_end_flush();
  

Файл существует и является пустым. Функция fwrite указывает на правильное местоположение. Он просто не записывается.

Есть помощь?

Комментарии:

1. Что произойдет, если вы просто повторите ob_get_contents()?

2. Можете ли вы показать какой-нибудь минимальный код, который воспроизводит проблему? Что-то, что на самом деле выдает выходные данные, то есть где // my code that creates an output заполнено.

3. ob_get_contents () содержит правильные данные, я только что проверил это.

Ответ №1:

Попробуйте сначала написать первое маленькое слово или предложение.

 fwrite($fp, 'hello')
  

Также проверьте, что у вашего файла должно быть разрешение writable .

Комментарии:

1. Он не пишет ни слова, я думаю, вы правы в том, что это проблема с разрешениями. Я сделаю его доступным для записи, если это не так.

Ответ №2:

Убедитесь, что ob_get_contents() файл действительно не пустой. Тогда попробуйте

 fflush($fp);
  

прямо перед fclose() .