我试图编写一个脚本来解析网页。在对页面内容做任何事情之前,我想将每个链接从相对转换为绝对。
当我尝试修改内容时,出现以下错误:(错误发生在行:$ link-> getAttribute(' href')= $ href;)
致命错误:在写上下文中不能使用方法返回值
我相信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;
}
?>
答案 0 :(得分:2)
如果您想更改href=""
属性的值,请->setAttribute()
:
$link->setAttribute('href', $href);
答案 1 :(得分:0)
$link->getAttribute('href')
会返回一些字符串,因此您尝试执行以下操作:
'some string' = 'another string';
您应该使用设置属性而不是getAttribute