0

以下のコードは、PHP CURL を使用して RSS フィードからデータを取得するように機能しますが、説明変数から画像 URL を取得する方法がわかりません。最初の画像だけが必要です。

Fatal error: Call to undefined method SimpleXMLElement::description() in      /home/feedolu/public_html/index.php on line 26 

    Function feedMe($feed) {
// Use cURL to fetch text
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $feed);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
$rss = curl_exec($ch);
curl_close($ch);

// Manipulate string into object
$rss = simplexml_load_string($rss);

$siteTitle = $rss->channel->title;
echo "<h1>".$siteTitle."</h1>";
echo "<hr />";

$cnt = count($rss->channel->item);

for($i=0; $i<$cnt; $i++)
{
    $url = $rss->channel->item[$i]->link;
    $title = $rss->channel->item[$i]->title;
    $desc = $rss->channel->item[$i]->description;
    $image = $rss->channel->item[$i]->description('img', 0);
    echo '<h3><a href="'.$url.'">'.$title.'</a></h3>'.$desc.'';
    echo $image;
}
}

 feedMe("localhost/feed/");
4

2 に答える 2

3

問題は明らかにこのリンクに関連しています:

$image = $rss->channel->item[$i]->description('img', 0);

SimpleXMLクラスのコンテキストではdescription、 はプロパティであり、関数ではありません。xpath()すべての を検索する関数を使用する<img />と、問題をすばやく処理できます。

したがって、コードに基づいて、探している値を取得する方法は次のとおりです(実装が最適だとは思いませんが)。

$images = $rss->channel->item[$i]->description->xpath('img');
if (count($images) > 0) {
    $image = $images['src'];
}
于 2013-01-05T02:54:31.087 に答える