phpcms v9采集模块一个小bug

phpcms v9自带了采集模块。
这个玩意体验真是烂得可以。不仅没有使用文档,用法全靠摸索,各种超时,502,504,烦不胜烦。
但是如果不使用它,手写采集的步骤也比较繁琐:下载图片/插入附件表/点击表/文章表/详情表/修改分类条数。
当然。。。我试过手写采集模块。但是长期使用的情况下,还是宁愿修改一下自带的采集了。
这不。终于看到了自带采集的一个小bug。

bug出现在这个地方:
QQ截图20150130094733
phpcms/modules/collection/classes/collection.class.php

上面可以看出$config = explode(“\n”, $config);。
使用了\n来分割多行的正则(话说,开发者不考虑osx的兄弟??\r换行的怎么活。。)。但是如大家所知。widnows的换行符是\r\n。他一切割数组,就遗留了\r在[|]后面。
也就是,每一处替换的地方都会多出一个\r。。。这看起来没有什么问题。。
但是。。当它出现在url或者标签内的位置。就可以导致url截断和标签失效。
修复方法比较简单。穷屌丝也不考虑\r的情况。直接用trim把不可见的字符先替换掉,什么?你要把文本替换成空格?朕不管。你自己参考着修改吧。以下是本人的修复方案:

搭便车说说他的超时问题。
无论是nginx还是apache,在web上面访问php都会遇到一个超时问题。在nginx下的超时比较繁琐。因为还涉及到nginx主动断开连接,当然了,要是不考虑其他问题。直接把全部超时时间都设空。让他不超时是可以实现。但是实际操作中是不太可能这么去做。
那么。。为何不试试cli方式采集???
好了。那么又留下一个问题:如何解决cli下的后台在线问题(提示未登录)。。。
这个就算给大家留个家庭作业吧。我反正是搞定了。

留下评论