开发者

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


I may be missing the point here, but it might also be an idea to include() the other PHP file and simply use it to create the output directly on demand instead of involving the webserver at all for that stage in the process.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜