首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php验证podcast rss/xml提要

使用php验证podcast rss/xml提要
EN

Stack Overflow用户
提问于 2015-03-09 08:42:40
回答 1查看 237关注 0票数 1

我目前正在研究一种方法来验证任何给定的url是否对应于格式正确的播客提要。

现在,我有一个两阶段的方法,它似乎是一个相当充分的捕获。首先是使用CURL检查响应,然后使用DOMDocument的validateOnParse检查格式,即。

代码语言:javascript
复制
$dom = new DOMDocument();
$dom->validateOnParse = true;
if($dom->load($url, LIBXML_NOERROR)){

这似乎有点过于敏感,偶尔会拒绝结构不佳的播客提要。它还传递常规的、非播客rss提要。

注意:我确信结构不佳的播客提要仍然可以接受,因为我已经通过播客应用程序订阅了它们进行了测试。

显然,validateOnParse不是专门为检查播客而设计的,但是有没有其他方法或库可以这样做呢?播客制作人似乎很少遵守任何类型的标准。

-更新--

任何搜索和查看过这个问题的人都很可能会发现这个副本是一个合适的解决方案。然而,在我的例子中,我得到的不是糟糕的格式,而是错误,因为一些对$url的请求是基于我的服务器作为用户代理提供的任何东西而被阻塞的。

简单地说,这个问题的解决方案是伪造用户代理,如下所示:

代码语言:javascript
复制
$options  = array('http' => array('user_agent' => 'some user agent string'));
$context  = stream_context_create($options);

$file = file_get_contents($url,false,$context);

这似乎解决了所有假阴性的情况,而副本似乎修复了假阳性。

EN

回答 1

Stack Overflow用户

发布于 2015-03-09 08:58:56

像这样使用'@‘符号:

代码语言:javascript
复制
@$dom->validateOnParse = true;

因为您并不总是能找到经过验证的文档,所以“@”符号将忽略任何可能出现的警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28933659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档