2016-09-19 26 views
-1

私は、RSSフィードのタイトルとリンクを取得しようとしています - 私は、タイトルまたはリンクを取得することはできません解析RedditのRSSフィード - PHP

https://www.reddit.com/r/gif.rss 

(redditのフィード)

xml=simplexml_load_file("https://www.reddit.com/r/gif.rss") or die("Error: Cannot create object"); 

foreach ($xml->entry->content as $x) { 
$title = $x->title; 
$string = $x->link; 
echo $title; 
echo "<br>"; 
echo $string; 
} 

を現れる。

+0

を私はタイトルと文字列エコーしようとした任意のecho文 –

+0

表示されない - 何を起こる –

+1

'$ x'はあなたがエコーすることができる文字列オブジェクトです。 '$ x'からhtmlを解析する必要があります。 – aynber

答えて

0

パスの式を調整してください。 <content>ノードには、内容がコンテンツのテキスト値に含まれていますが、<title>または<link>という子は含まれません。代わりに、あなたが必要とするノードは兄弟なので、ループ経路に<content>を削除します。

$xml = simplexml_load_file("https://www.reddit.com/r/gif.rss") 
           or die("Error: Cannot create object"); 
foreach ($xml->entry as $x) { 
    $title = $x->title; 
    $string = $x->link['href']; 
    echo $title; 
    echo "<br>"; 
    echo $string; 
} 

// This guy loves his job 
// <br> 
// https://www.reddit.com/r/gif/comments/53i3jc/this_guy_loves_his_job/ 
// Letron BMW E92 Transformer 
// <br> 
// https://www.reddit.com/r/gif/comments/53i13r/letron_bmw_e92_transformer/ 
// MRW "you're cute when you're angry" 
// <br> 
// https://www.reddit.com/r/gif/comments/53ihpf /mrw_youre_cute_when_youre_angry/ 
// Pussy Pass Denied 
// <br> 
// https://www.reddit.com/r/gif/comments/53hm3w/pussy_pass_denied/ 
// My favorite reverse gif so far 
// <br> 
// https://www.reddit.com/r/gif/comments/53ihwr/my_favorite_reverse_gif_so_far/ 
// Oh hooman, you will hug me. --Dog 
// <br> 
// https://www.reddit.com/r/gif/comments/53cbcq/oh_hooman_you_will_hug_me_dog/ 
... 
0

それを整理:

$xml=simplexml_load_file("https://www.reddit.com/r/gif.rss") or die("Error: Cannot create object"); 

function extractString($string, $start, $end) { 
    $string = " ".$string; 
    $ini = strpos($string, $start); 
    if ($ini == 0) return ""; 
    $ini += strlen($start); 
    $len = strpos($string, $end, $ini) - $ini; 
    return substr($string, $ini, $len); 
} 


foreach ($xml->entry as $x) { 
$string = $x->content; 

$url = extractString($string, '<span><a href="', '">[link]</a></span>'); 
$title = extractString($string, 'alt="', '" title'); 
関連する問題