SimplePie通过CraftCMS添加#?提供网址

时间:2014-06-04 10:37:02

标签: php rss simplepie

好的 - 首先是简单的细节:

Feed网址:http://feeds.wired.com/wired/index

当我通过simplepie而不是CraftCMS直接访问时,Feed会毫无问题地加载。当我通过CMS模板系统访问它时,它会抛出一个错误,指出返回的XML实际上是垃圾。考虑到这一点,因为Feed主机正在返回未找到的页面。

我已经挖掘了代码,找出为什么它是在有效网址上找不到的网页,并在文件中找到:

/library/simplepie/registry.php
public function &create($type, $parameters = array()) (around line 160)

现在在这个函数中,我看到创建了一个新的反射类,并向参数发送了新的InstanceArgs。此时,Feed网址将从以下更改:

http://feeds.wired.com/wired/index

http://feeds.wired.com/wired/index?#

有效地,此末尾添加了?#的新网址会导致Feed网站返回未找到的网页。因此我所有的错误......

这已经开始结束我的能力 - 我想知道是什么导致了?#被添加,如果有办法防止它?或者我的问题的任何其他可能的解决方案。

1 个答案:

答案 0 :(得分:1)

我无法解释为什么它在Craft之外工作而不在内部,但它对我来说肯定看起来像一个SimplePie错误。

刚刚创建了一个问题并通过针对它们的修复程序提取请求(https://github.com/simplepie/simplepie/issues/366),并且会看到有关在Craft中更新它的信息。

更新:看起来我的修复没有打破他们的一些测试,所以我们不会把它放到Craft,但他们已经承认它需要修复。