lilina 最近总是出问题,又用不惯别的,今天花了点时间看了看。
lilina 的rss解析用的是 magpie ,feed文件下载用的是 Snoopy 。下载之后 magpie 用 xml_parse 来做处理。lilina 使用 magpie 的 fetch_rss() 函数来处理rss。而在 inc/magpie/rss_fetch.php 里面又用 _fetch_remote_file() 函数来获取rss文件,文件的获取用的是 Snoopy 类。获取文件内容之后,又用 magpie 的 MagpieRSS 类的 MagpieRSS 函数来处理文件,里面用到了 xml_parse() 函数。再后面就没有仔细看了。
我遇到的问题是 Snoopy 获取文件是没问题的,出问题的是 xml_parse ,如果获取的source不是有效的xml文件,xml_parse 会死掉,所以我就在 xml_parse 前面检查了一下 source 是不是一个正常的feed。有人推荐 tidy 来验证,那太麻烦了,我就直接match了一下feed这个关键字。。。目前看好像每问题。。