我使用SimplePie来解析php中的RSS提要。为了预处理SimplePie的结果,我需要知道链接是否是永久链接。信息存储在以下XML元素中:
<guid isPermaLink="false">FileNr123</guid>
如果$items
是SimplePie objet的一个实例,它代表一个RSS提要项,我可以使用$item->get_permalink
来获取固定链接。不幸的是,即使isPermaLink="false"
那么如何访问每个Feed项的isPermaLink
属性来对SimplePie输出进行后期处理?
答案 0 :(得分:1)
选项是使用get_item_tags
方法,以便遍历数组并搜索第一个isPermaLink
:
$guid = $item->get_item_tags('','guid');
$arrIt = new RecursiveIteratorIterator(new RecursiveArrayIterator($guid[0]));
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if (isset($subArray['isPermaLink']) && $subArray['isPermaLink'] == "false")
{$isPermalink = false ;break;}
}
这样做有效,但它并不令人满意,因为某些RSS提供商将isPermaLink
设置为false
,即使该链接长时间正常工作也是如此。