我想检索网页的页眉和页脚(所有者知道这一点)并将其显示在新页面上,以便我可以添加不同的内容。该页面结构非常漂亮,div内容为id内容,所以我想我可以做到以下几点:
使用CURL检索html 在内容的任一侧获取HTML 回到新页面
我的问题是我不太懂PHP,所以我不确定如何在两侧使用两块html。我之前在Java中使用过substring,但PHP中的substr似乎有点不同。有人可以建议替代方案吗?
由于
答案 0 :(得分:2)
Substring和RegEx不是处理HTML的足够工具。使用DOM解析器最好(也更容易)。
看看DOMDocument
class。它支持加载HTML,并允许您轻松遍历文档。
答案 1 :(得分:1)
要抓取我使用HTML DOM parser的网页。这对你来说是最简单的方法。 您可以在此帖子中找到更多工具:How to parse and process HTML with PHP?
答案 2 :(得分:0)
前几天我做了类似的事情。我选择使用jQuery,Ajax和PHP来收集页面并将其分解。我已经包含了我的代码的稀释版本。
对于PHP,我使用了CURL(get-url.php):
$requestURL = $_GET['url'];
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $requestURL);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_handle, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($curl_handle, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl_handle, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl_handle, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);
curl_setopt($curl_handle, CURLOPT_FORBID_REUSE, TRUE);
$content = curl_exec($curl_handle);
curl_close($curl_handle);
echo $content;
然后对于我使用的Ajax:
var url = /* URL you want to retrieve */;
$.ajax({
url: "get-url.php?url=" + url,
type: "GET",
dataType: "html",
cache: false,
success: function(data, textStatus, jqXHR){
var header = data.find('#header').html();
var footer = data.find('#footer').html();
$(header_DOM).html(header);
$(footer_DOM).html(footer);
}
});
这只是一个指南。改变这个想法以满足您的需求。