我想寫一個腳本來解析一個網頁。在對頁面內容做任何事情之前,我想將每個鏈接從相對轉換爲絕對。使用PHP DOMDocument :: loadHTMLFile修改所有hrefs,並使它們絕對
當我嘗試修改內容,我得到以下錯誤:(在該行發生錯誤:$鏈路>的getAttribute( 'href' 屬性)= $ HREF;)
Fatal error: Can't use method return value in write context
我相信loadHTMLFile()返回一個對象。我不太瞭解如何使用對象。是否可以修改它並返回修改後的版本?
我認爲只是把它變成文本,但不會工作。我需要在轉換'href'屬性後找到某些元素的內容。我使用simple_html_dom.php庫來查找我需要的元素;它依賴於保持對象與loadHTMLFile()返回的格式相同。
<?php
$domain = 'http://www.test.com/'
$doc = new DOMDocument();
@$doc->loadHTMLFile($domain);
$doc = make_absolute($doc);
function make_absolute($obj){
foreach($obj->getElementsByTagName('a') as $link) {
$href = trim($link->getAttribute('href'));
if ((substr($href,0,1) == '/') {
$href = 'http://www.test.com'.$href;
}
$link->getAttribute('href') = $href;
}
return $obj;
}
?>
OH duh。我認爲這個問題完全不同。謝謝! – pallazzio 2014-12-07 06:38:04
@pallazzio當然,我很高興這有幫助 – Ghost 2014-12-07 06:40:08