Как создать статический HTML-файл из вывода PHP-сценария, используя PHP - PullRequest
15 голосов
/ 16 апреля 2011

Я хотел бы сгенерировать статическую HTML-страницу из php-файла и сохранить ее из другого php-скрипта.Этот скрипт запускает несколько эхо-функций, которые при просмотре в браузере являются хорошей HTML-страницей.Но когда я запускаю file_get_contents, он открывает этот файл как файл в файловой системе, а не как файл в URL.

Нужно ли вызывать file_get_contents способом localhost / site / Categories.php?Как я могу получить этот путь?Это неправильный код:

<?php
$file = file_get_contents("categories.php");
file_put_contents("categories.html", $file);
?>

Ответы [ 5 ]

15 голосов
/ 16 апреля 2011

Чтобы получить законченный вывод, вам нужно использовать функциональность PHP url-оболочек и запросить ее через веб-сервер. Тогда это так же просто, как:

copy("http://localhost/site/categories.php", "categories.html");
11 голосов
/ 16 апреля 2011

Да - запускать file_get_contents локальным способом - если ваш сервер настроен правильно, он не будет подключаться к Интернету и будет эффективно получать ваши результаты, даже если он размещен на вашем собственном доменном имени.

<?php
$file = file_get_contents("http://yourserver.com/site/categories.php");
file_put_contents("categories.html", $file);
?>
2 голосов
/ 16 апреля 2011

Полагаю, вы можете просто:

$file = file_get_contents("http://localhost/site/categories.php");

Однако, fopen wrappers должен быть включен для file_get_contents() для чтения URL.

1 голос
/ 16 апреля 2011

Я бы не стал использовать php для достижения целей безопасности.Лучше всего использовать ssh для копирования файла на нужный удаленный сервер:

php script.php | ssh you@remotehost "cp - /path/to/static/file.html
0 голосов
/ 16 апреля 2011

Возможно, я здесь упускаю суть, но также может быть идея включить () другой файл PHP и просто использовать его для создания выходных данных напрямую по требованию, вместо того, чтобы вообще задействовать веб-сервер для этой стадии процесса. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...