所以使用simple html dom,我想要检索页面的一部分,这似乎工作正常:)但链接不正确,它们是相对于我的网站... 我决定使用基本标签代替 ....这就是我所拥有的
<?php
include('simple_html_dom.php');
$url = "http://bm.erciyes.edu.tr/";
$file = file_get_html($url);
echo "<base href='$url'>";
foreach($file->find('div.onemliduyurular') as $var){
echo $var->innertext;
}
$url = "http://bm.erciyes.edu.tr/";
?>
<h1>Return to my Site</h1>
<?php
// I want this link here become relative to my site again
echo "<a href='hello.php'>Go This Way</a>";
所以在foreach
之上添加了这一行echo "<base href='$url'>";
有没有办法可以重置基本标签?或任何其他替代方案;)
内部文字包含此
// get dom node's inner html
function innertext()
{
if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER];
if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
$ret = '';
foreach ($this->nodes as $n)
$ret .= $n->outertext();
return $ret;
}
这是拉动
的公告答案 0 :(得分:3)
您无法更改其他base
元素中的基址,因为HTML syntax for head
最多允许一个base
元素。 HTML5不会改变这一点;它明确says:“如果有多个具有href属性的基本元素,则忽略除第一个之外的所有元素。”
结论是您需要发出适当的绝对URL。
答案 1 :(得分:1)
其中一种方法是使用绝对网址
... 如果你在你的网址前面加上来自拉网站的相对网页,那该怎么办.... 如在
<?php
foreach($html->find('div.onemliduyurular') as $d) {
foreach($d->find('a[href]') as $goAway){
$goAway->href =$url.$goAway->href;
}
echo $d->innertext;
}
$html->clear();
unset($html);
我希望它可以与你的项目一起使用