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.