如何重置基本标签

时间:2013-11-11 19:18:36

标签: php html curl simple-html-dom base-tag

所以使用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;
    }

这是拉动

的公告

2 个答案:

答案 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);

我希望它可以与你的项目一起使用