从<a href=""> tag using php simple_html_dom.php</a>检索特定的链接值

时间:2014-03-02 05:08:07

标签: php html


这是我到目前为止的代码, 这就是它打印的内容

http://schulnetz.nibis.de/
http://schulnetz.nibis.de/admin/eingeben.phtml?schulnr=35877&aendern=4
http://schulnetz.nibis.de/admin1/schule_edit.php?schulnr=35877
http://schulnetz.nibis.de/daten_mail.php?x=1&Schul_Nr=35877
http://www.grundschule-bierden.de/

我唯一感兴趣的是

http://schulnetz.nibis.de/
http://schulnetz.nibis.de/admin/eingeben.phtml?schulnr=35877&aendern=4
http://schulnetz.nibis.de/admin1/schule_edit.php?schulnr=35877
http://schulnetz.nibis.de/daten_mail.php?x=1&Schul_Nr=35877

所以我需要一个只寻找这些href http://schulnetz.nibis.de/的循环,但我似乎无法找到如何做到这一点。例如,如果href是http://schulnetz.nibis.de/one http://schulnetz.nibis.de/two http://schulnetz.nibis.de/tree http://schulnetz.nibis.de/four http://another.wildow/我应该能够存储一个四而不是另一个存储。

include('simple_html_dom.php');

function getHost($url) {
            $parseUrl = parse_url(trim($url));
            return trim($parseUrl[host] ? $parseUrl[host] : array_shift(explode('/', $parseUrl[path], 2)));
        }
$url = "http://schulnetz.nibis.de/db/schulen/schule.php?schulnr=35877&lschb=";
//simple way to add the http:// that dom requires, using curl is a better option
if (substr($url, 0, 4) != "http") {
$url = "http://$url";
}

$parsed_url = getHost($url);

$http_parsed_host = "http://$parsed_url/";
$html = file_get_html($url);

foreach($html->find('a') as $element) 

$dom = new DOMDocument();
@$dom->loadHTML($html);


$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

for ($i = 0; $i < $hrefs->length; $i++) {

$href = $hrefs->item($i);

$href_link = $href->getAttribute('href');

 if (substr($href_link, 0, 1) == "/") {
$href_link = trim($href_link,"/");

}   

 if (substr($href_link, 0, 2) == "//") {
$href_link = trim($href_link,"//");

} 

 if (substr($href_link, 0, 3) == "///") {
$href_link = trim($href_link,"///");

}  


      if ((substr($href_link, 0, 8) == "https://")) {

         $final_href_link[] = $href_link;


} else {

  if (substr($href_link, 0, 1) != "/") {
$final_href_link[] = "$http_parsed_host$href_link";
}

}             
}
$links_array = array_unique($final_href_link);
sort($links_array);
foreach ($links_array as $links) {

//echo "$links<br />";
echo "<a href='$links'>$links</a><br />";

}

1 个答案:

答案 0 :(得分:0)

也许我在这里误解了这个问题,但你不能只用strstr()查看$ url是否包含“schulnetz.nibis.de”

if(strstr($url,'schulnetz.nibis.de')){...}