我想从php文件生成一个静态html页面,并从其他php脚本保存它。该脚本运行了一堆回显函数,当在浏览器中查看时,它是一个漂亮的html页面。但是当我运行file_get_contents时,它将该文件作为文件系统上的文件打开,而不是作为url中的文件打开。
我是否需要在localhost/site/categories.php中调用file_get_contents ?我怎么得到这条路径?这是错误的代码:
<?php
$file = file_get_contents("categories.php");
file_put_contents("categories.html", $file);
?>
要获得完成的输出,需要使用PHP url包装器功能并通过web服务器请求它。那么就像这样简单:
copy("http://localhost/site/categories.php", "categories.html");
是-以本地主机方式运行file_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");
但是,file_get_contents()
必须启用fopen包装器才能读取url
出于安全原因,我不会使用php来完成。更好的方法是使用ssh将文件复制到所需的远程服务器:
php script.php | ssh you@remotehost "cp - /path/to/static/file.html
我可能在这里错过了重点,但它也可能是一个想法,包括()另一个PHP文件,并简单地使用它来直接创建输出,而不是在过程的那个阶段涉及到web服务器。
对于我来说,它被webhook用来创建另一个API驱动的文件。它用于减少API请求的数量。