2013-09-28 1 views
0

이 코드를 사용하는 함수가 있는데 잘못된 것을 계산하려고합니다. 웹 페이지의 RSS 피드가있는 경우 피드를 찾고 싶습니다. 현재로서는 URL을 반환하지 않고 유형을 표시하지만 그게 전부입니다. 그리고 blog_url 키가 배열에 설정되지 않습니다.PHP - DOMDocument 사용 - 피드에 대한 링크를 찾으려고 시도합니다.

$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
<?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); 
: 여기 코드입니다