我使用SimplePie解析php中的RSS feed。为了对SimplePie的结果进行预处理,我需要知道链接是否为永久链接。信息存储在以下XML元素中:<guid isPermaLink="false">FileNr123</guid>
如果$items
是SimplePie对象的一个实例,代表一个RSS feed项,那么我可以使用$item->get_permalink
获取永久链接。不幸的是,即使isPermaLink="false"
,它也会返回fileName / guid
那么,如何访问每个提要项的isPermaLink
属性来对SimplePie输出进行后处理?
最佳答案
On选项是使用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
,即使该链接可以正常工作很长时间。关于php - 访问ID/GUID属性isPermaLink,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23653210/