htmlunit抓取动态网页(给出一个PHP动态生成HTML方法,极大降低服务器CPU负荷)
优采云 发布时间: 2022-04-08 00:29htmlunit抓取动态网页(给出一个PHP动态生成HTML方法,极大降低服务器CPU负荷)
最近在研究PHP的一些开发技术,发现PHP有很多ASP没有的优秀功能。它可以完成一些以前无法完成的功能,比如动态生成HTML静态页面,以减少服务器CPU的负载,提高用户访问速度。 .
我们知道PHP读取MYSQL动态显示,在流量大的情况下,会出现很多性能问题,如果租用别人的虚拟主机,CPU会因为CPU消耗过多而受限,导致无法访问网页 。这里我给出一个PHP动态生成HTML的方法,可以大大降低服务器CPU负载。
首先设置.htaccess文件,将动态调用的参数转换为静态HTML URL地址,例如将post目录下的文件转发到根目录下的wp-post.php文件,并添加语句类似于:
重写规则 ^post/([a-z0-9\-]+\.html)$wp-post.php?$1$2
然后修改wp-post.php文件,在文件开头添加如下PHP代码:
ob_start();
$qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
define("HTML_FILE",$_SERVER['DOCUMENT_ROOT']."/post/".$qstring);
如果(文件存在(HTML_FILE))
{
$lcft = filemtime(HTML_FILE);
if (($lcft + 3600) > time())//判断最后生成的HTML文件是否超过1小时,如果不是,直接输出文件内容
{
echo(file_get_contents(HTML_FILE));
退出(0);
}
}
在现有 PHP 代码之后,在当前代码末尾添加以下 PHP 代码:
define("HTMLMETA","");
$buffer = ob_get_flush();
$fp = fopen(HTML_FILE, "w");
如果 ($fp)
{
fwrite($fp, $buffer.HTMLMETA);
fclose($fp);
}
好的,然后查看您的静态 HTML 页面。如果页面末尾出现注释行,则表示静态 HTML 文件已成功创建。