我想要檢索網頁的頁眉和頁腳(業主知道這一點),並在顯示它新頁面,以便我可以添加不同的內容。該頁面與一個div裏面的內容與內容的ID非常漂亮的結構,所以我想我能做到以下幾點:
使用curl檢索HTML 取內容的HTML兩側 回聲它到一個新的頁面
我的問題是我不太PHP精明,所以我不知道如何把兩個HTML塊兩邊。我以前在Java中使用過substring,但PHP中的substr似乎有點不同。任何人都可以提出替代方案
謝謝
我想要檢索網頁的頁眉和頁腳(業主知道這一點),並在顯示它新頁面,以便我可以添加不同的內容。該頁面與一個div裏面的內容與內容的ID非常漂亮的結構,所以我想我能做到以下幾點:
使用curl檢索HTML 取內容的HTML兩側 回聲它到一個新的頁面
我的問題是我不太PHP精明,所以我不知道如何把兩個HTML塊兩邊。我以前在Java中使用過substring,但PHP中的substr似乎有點不同。任何人都可以提出替代方案
謝謝
子字符串和正則表達式不足以處理HTML。使用DOM解析器是最好的(也更容易)。
看看DOMDocument
class。它支持加載HTML,並允許您輕鬆遍歷文檔。
刮我的網頁我用HTML DOM parser。這對你來說是最簡單的方法。 你可以在這篇文章中找到更多的工具:How to parse and process HTML with PHP?
我前些日子做過這件非常相似的事情。我選擇使用jQuery,Ajax和PHP來收集頁面並將其分解。我已經包含了我的代碼的稀釋版本。
對於PHP我用捲曲(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;
那麼對於阿賈克斯我用:
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);
}
});
這只是一個指南。改變這個想法以滿足您的需求。
我甚至不會調用子字符串/正則表達式** IN **足夠的工具 –
感謝您的回覆。我認爲DOM解析對於頁腳來說是我最好的選擇,但是我可能需要別的東西來替換頁眉,因爲它的結構不如我以前想象的那麼好。 – MillyMonster
@MillyMonster,該文檔將被解析爲結構化文檔。 – Brad