简体   繁体   中英

how to generate a static html file from the output of a php script, using php

I would like to generate a static html page from a php file and save it from an other php script. That script runs a bunch of echo functions, which when viewed in a browser is a nice html page. But when I run file_get_contents it opens that file as a file on the filesystem, not as a file in an url.

Do I need to call file_get_contents in a localhost/site/categories.php way? How can I get this path? This is the wrong code:

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

To get the finished output, you need to use the PHP url wrappers functionality and request it over the webserver. Then it's as easy as:

copy("http://localhost/site/categories.php", "categories.html");

Yes - run file_get_contents in a localhost way - if your server is configured correctly, it will not trek off to the internet and will get your results in an efficient manner, even when hosted on your own domain name.

<?php
$file = file_get_contents("http://yourserver.com/site/categories.php");
file_put_contents("categories.html", $file);
?>

I believe you can simply:

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

However, the fopen wrappers must be enabled for file_get_contents() to read URLs.

I wouldn't use php to accomplish for security reasons. A better approach would be to use ssh to copy the file to the desired remote server:

php script.php | ssh you@remotehost "cp - /path/to/static/file.html

我可能在这里忽略了这一点,但包含() 另一个 PHP 文件并简单地使用它直接按需创建输出也可能是一个想法,而不是在流程的那个阶段完全涉及网络服务器。

For me its being used by a webhook to create another file thats API driven. Its used to reduce the number of API requests.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM