Есть моменты, когда требуется отладка файла, который на экран не выводится или выводится, но сразу после выполнения происходит редирект и возможности его убрать нету. Делаю так:

ob_start();
/*здесь все, что выводит инфу на экран*/
vcache(ob_get_contents());
ob_end_clean();

function vcache($text)
{
$fp = fopen($_SERVER['DOCUMENT_ROOT'].’/lg.txt’, ‘w’);
fwrite($fp, $text);
fclose($fp);
}

Первая команда перехватывает поток вывода на экран в буфер. ob_get_contents - получение всей инфы из буфера. ob_end_clean - уничтожение буфера и перехвата.

Функции сохранения в файл требуется 777 на доступ к файлу, параметр w - перезаписывает файл с нуля, независимо от того, что в нем было.

На базе данной функции можно также организовать тотальное кэширование всего-всего. Нужно только названия файлов для разных страниц разные придумать и смотреть по дате создания генерировать заново или пустить текст файла