我有一个使用这段代码的函数,我试图弄清楚我做错了什么。 我想找一个网页的rss feed如果有的话。 截至目前,它没有返回任何URL,它显示了类型,但就是这样。 并且blog_url键未在数组中设置。 这是代码:
$results = array();
$doc = new DOMDocument();
@$doc->preserveWhiteSpace = FALSE;
$html = file_get_contents($url);
$doc->loadHTML("$html");
$links = $doc->getElementsByTagName('link');
foreach ($links as $tag) {
$type = $tag->getAttribute('type');
if (preg_match("/(rss+xml|atom+xml')/si", $type))
$href_text = $tag->nodeValue;
if(preg_match("/('feed|journal|blog')/si", $href_text))
$results['blog_url'] = $tag->getAttribute('href');
}
答案 0 :(得分:0)
<?php
$url = ''; // EDIT THIS
$doc = new DOMDocument;
@$doc->loadHTMLFile($url);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('head/link[@rel="alternate"][@type="application/atom+xml" or @type="application/rss+xml"][@href]');
$result = array();
foreach ($nodes as $node) {
$href = $node->getAttribute('href');
if (preg_match('/(feed|journal|blog)/si', $href)) {
$result['blog_url'] = $href;
break;
}
}
print_r($result);