2012-02-23 2 views
0

私はbing rssのニュースフィードを取得するためにこのコードを試しています。このデータからすべてのタイトルを取得し、単語を一緒に文字列に入れて、別のコードで単語の雲を作成することができます。これまではrssフィードとprint_r($ doc)を取得しています。コメントを外すと、単純なxmlが表示されます。 Howver私のforeachループは、配列内のタイトルをつかむためにループしていないようだと私はエラーがどこに見えない?前もって感謝します。あなたのコードがRSS /エントリー/タイトルで、それらを探す場所php get bing rssタイトルを1つの変数に入力する

$ch = curl_init("http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=web+design+uk"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 

$doc = new SimpleXMLElement($data); 
//print_r($doc); 

$vals = array(); 
foreach ($doc->entry as $entry) { 
$vals[] = (string) $entry->title; 
} 

//join content nodes together for the word cloud 
$vals = implode(' ', $vals); 

echo($vals); 

答えて

0

タイトルはRSS /チャネル/アイテム/タイトルないでいます。それ以外にも値を取得する方法は問題ありません。タイトルを取得するために、XPathを使用して

$rss = simplexml_load_file('http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=web+design+uk'); 

$titles = array(); 
foreach ($rss->channel->item as $item) { 
    $titles[] = (string) $item->title; 
} 

//join content nodes together for the word cloud 
$words = implode(' ', $titles); 

echo $words; 

quicky代替は、次のとおりです。

$rss = simplexml_load_file('http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=web+design+uk'); 
$words = implode(' ', $rss->xpath('channel/item/title')); 
echo $words; 
関連する問題