Ответ 1
Чтобы получить готовый вывод, вам нужно использовать функциональные возможности фреймворков PHP и запросить его через веб-сервер. Тогда это так же просто, как:
copy("http://localhost/site/categories.php", "categories.html");
Я хотел бы создать статическую html-страницу из php файла и сохранить ее с другого php script. Это script запускает множество функций эха, которые при просмотре в браузере - хорошая страница 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);
?>
Чтобы получить готовый вывод, вам нужно использовать функциональные возможности фреймворков PHP и запросить его через веб-сервер. Тогда это так же просто, как:
copy("http://localhost/site/categories.php", "categories.html");
Да - запустите файл_get_contents по локальной схеме - если ваш сервер настроен правильно, он не пойдет в Интернет и не получит эффективные результаты, даже если вы размещаете на своем собственном доменном имени.
<?php
$file = file_get_contents("http://yourserver.com/site/categories.php");
file_put_contents("categories.html", $file);
?>
Я считаю, что вы можете просто:
$file = file_get_contents("http://localhost/site/categories.php");
Тем не менее, fopen wrappers должен быть включен для file_get_contents()
для чтения URL-адресов.
Я бы не использовал php для достижения соображений безопасности. Лучшим подходом было бы использовать ssh для копирования файла на желаемый удаленный сервер:
PHP скрипт.php | ssh [email protected] "cp - /path/to/static/file.html
Мне может не хватать точки здесь, но также может быть идея включить() другой файл PHP и просто использовать его для создания вывода непосредственно по требованию, а не для включения этого веб-сервера на этот этап процесса.