【发布时间】:2014-05-24 02:17:19
【问题描述】:
我是 RSS 提要解析的新手,遇到了一些麻烦。我将如何使用 simplepie 来捕获以下资源?
<enc:enclosure resource="http://images.craigslist.org/00202_lQ0CCpDIPk0_300x300.jpg" type="image/jpeg"/>
【问题讨论】:
标签: xml-parsing simplepie
我是 RSS 提要解析的新手,遇到了一些麻烦。我将如何使用 simplepie 来捕获以下资源?
<enc:enclosure resource="http://images.craigslist.org/00202_lQ0CCpDIPk0_300x300.jpg" type="image/jpeg"/>
【问题讨论】:
标签: xml-parsing simplepie
您将使用get_enclosures() 函数。
$feed = new SimplePie();
$feed->set_feed_url('http://simplepie.org/blog/feed/');
$feed->init();
$feed->handle_content_type();
foreach ($feed->get_items() as $item)
{
foreach ($item->get_enclosures() as $enclosure)
{
echo $enclosure->embed();
}
}
【讨论】:
之前的响应者没有意识到 SimplePie 的工作原理。您不使用 get_enclosures() 因为 XML 未格式化为 <enclosure> ...
相反,您可以这样做:
require( 'autoloader.php' );
$feed = new SimplePie();
$feed->set_feed_url('https://denver.craigslist.org/search/msa?format=rss&query=left%20handed%20%7C%20lefthanded%20%7C%20lefty');
$feed->init();
$feed->handle_content_type();
foreach ($feed->get_items() as $item) {
$encs = $item->get_item_tags( 'http://purl.oclc.org/net/rss_2.0/enc#', 'enclosure' );
if ( !isset( $encs ) )
continue;
foreach ( $encs as $enclosure){
if ( !isset( $enclosure['attribs'] ) )
continue;
foreach ( $enclosure['attribs'] as $attr ) {
echo "\n" . $attr['resource'];
}
}
}
【讨论】: