我试图修改本地网站的内容,所以我用CURL PHP恢复网站的内容然后用DOM解析它,我改变了html代码来优化它。例如我将标签更改为或者在这个例子中,我最终改变了脚本javascript的位置。不,我需要在网站上应用此修改,以便我如何使用curl或其他解决方案,如果existe上传网站的新内容。
<?php
$URLs = "http://localhost/...";// url of site
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URLs);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$source = curl_exec($ch);
libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->recover = true;
$dom->substituteEntities = true;
$xhtml = (preg_match('/XHTML/', $source)) ? true : false;
switch ($xhtml) {
case true:
$dom->loadXML($source);
break;
case false:
$dom->loadHTML($source);
break;
}
libxml_use_internal_errors(false);
$body = @$dom->getElementsByTagName('body')->item(0);
foreach (@$dom->getElementsByTagName('head') as $head) {
foreach (@$head->childNodes as $node) {
if ($node instanceof DOMComment) {
if (preg_match('/<script/i', $node->nodeValue)){
$src = $node->nodeValue;
$moveme[] = $node;
unset($src);
}
}
if ($node->nodeName == 'script' && $node->attributes->getNamedItem('type')->nodeValue == 'text/javascript') {
if (@$src = $node->attributes->getNamedItem('src')->nodeValue) {
} else {
$src = $node->nodeValue;
}
$moveme[] = $node;
unset($src);
}
}
}
foreach ($moveme as $moveit) {
$body->appendChild($moveit->cloneNode(true));
$moveit->parentNode->removeChild($moveit);
}
$body = $xhtml ? $dom->saveXML() : $dom->saveHTML();
答案 0 :(得分:0)
您可以将一些网站内容存储在一个临时文件夹(包括时间戳)中,并将其用于该网站。每隔xxx分钟左右,您就可以运行脚本并将输出内容写入该temp-folder。您的脚本需要放在网络服务器上。
我还找到了一个网站,它解释了我写的更详细的内容:
http://www.snipe.net/2009/03/quick-and-dirty-php-caching/
请注意,该教程被称为“快速而肮脏”,原因如下:)