<?php
$fp = fopen("test.html","w");
fputs($fp, [color="red"]ПАРСИРОВАННЫЙ[/color]("test.php"));
fclose($fp);
?>
Как парсировать .php в сохраненный на диске .html ?
Как средствами PHP сделать оффлайн-версию сайта?
Т.е. имеется куча .php файлов, и из них нужно сгенерировать статичные .html файлы. Что-то вроде этого:
Код:
Есть такой способ? Заранее благодарен за ответы.
Цитата:
Originally posted by SLA
Есть такой способ? Заранее благодарен за ответы.
Есть такой способ? Заранее благодарен за ответы.
Только не парсированный, а блин, даже не знаю как- пропарсенный что ли. А точнее твой вопрос звучит как сохранить результат работы скрипта на диске. Включить кэширование и сбросить перед выводом в броузер на диск. Или сбросить клиенту а потом на диск. Или сбросить клиенту, завершить работу скрипта, а кеширование повесить на shutdown function. В общем зри в Output Control Functions,
register_shutdown_function ('name');, можешь устроить кеширование сам. Если сам скрипт менять низя, смотрим на include.
p.s eval() можно помучить.
Пробовал
fputs($fp, include("test.php"));
записывает в файл "1" - наверное, результат выполнения функции.
Средств перенаправления стандартного вывода (stdout) в PHP нет?
Цитата:
Originally posted by SLA
Ого! Я думал, можно проще. Ну неужели нет готовой функции?
Пробовал
fputs($fp, include("test.php"));
записывает в файл "1" - наверное, результат выполнения функции.
Средств перенаправления стандартного вывода (stdout) в PHP нет?
Ого! Я думал, можно проще. Ну неужели нет готовой функции?
Пробовал
fputs($fp, include("test.php"));
записывает в файл "1" - наверное, результат выполнения функции.
Средств перенаправления стандартного вывода (stdout) в PHP нет?
Dna vopros chto nado :)
Est' nad chem podumat' hot'... Budem dumat', shas chto to golova ne varit. :(
php://stdout
php://stderr
php://output
php://input
php://filter
Только не надо это всё. Просто, если скрипт можно менять, то используешь буферизацию, если необходимы результаты внешнего скрипта, то включил буферизацию, сделал инклуд и сбросил буфер на винт. Вот и всё. Единственный косяк - если испытуемый скрипт нахально сам сбрасывает буфер клиенту.
Другой вариант - запускать скрипты с командной строки оператором fwrite($handle, `php_path script_name.php?parameters`);
Кавычки это если чё оператор.
А если действительно нужен второй вариант, то где в РУнете есть статьи по этому поводу, причем довольно внушительные)ъ Го на рамблер и вперед;)ъ Недавно на своей шкуре убедился, изобретать велосипед - галимая участь)ъ
php.exe -f test.php > test.htm
Жаль только, что это все происходит в обход моего Apache.
Teleport Pro, Offline Explorer и др. - не подходят. Т.к. они могут изменить код html. К тому же, некоторые персональные файрволы (Outpost Firewall) меняют html-код. Браузер Mozilla - тоже, но очень редко.
Способ с fwrite($handle, `php_path script_name.php?parameters`); - попробую.
Кто-нибудь знает еще каки-нибудь способы?
Цитата:
Originally posted by SLA
Ребят, я нашел аккуратный и быстрый способ:
php.exe -f test.php > test.htm
Способ с fwrite($handle, `php_path script_name.php?parameters`); - попробую.
Ребят, я нашел аккуратный и быстрый способ:
php.exe -f test.php > test.htm
Способ с fwrite($handle, `php_path script_name.php?parameters`); - попробую.
Два яйца в фас и профиль.