#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()
.