使用火车采集器实现PHP168“批量发图”的功能

说几句闲话先,一年前,Php168离开Ku6,南下广州时,曾疯狂的支持过P8一段时间,但是终因其功能的不完善而转战DEDE。近期,PHPcms的创始人离职,意味着PHPcms正式沦为一个商业化运作的商品,暂时不说PHPcms以后的发展到底是好是坏,也不发表什么个人意见。

就在众多CMS用户起哄之时,PHP168起来冒皮皮,打着“国内头号CMS” 的小旗呐喊,“要重振PHP的CMS行业”。

这则新闻是在“全国知名站长群”里看到的,当时还和发布此文的站长嘴了几句。要不是看着自己挂着公司的头衔,差点撕破脸皮了。当时就觉得,这些个家伙们要不就是“乱世造英雄”,要不就是企图“混水摸鱼”。

很奇怪当时会那么热血青年,但是PHP168确实“忽略”了很现实的现实。

就目前PHP的CMS行业来说,DEDE和Discuz无疑是用户最多的CMS。PHP168竟然能无视两位大哥,甚至前辈就能如此造次,确实有些汗人。

今天受客户要求,要写一个简单的PHP168的接口,以下为放出代码。于是去下载了一个PHP168v5.0的程序。

俺的娘,如果我没有记错,这个PHP168的程序包居然有20多M,肯定是我今生下载的最大的一个CMS了。我当时就乐了,希望PHP的质量能大于等于这个压缩包的“质量”。

程序下载下来,安装也很方便,但是,从安装界面来看,其美观程度和PHPCMS、DEDE比起来,还真没差到十万八千里。

安装完成以后,打开网站,又重新启动安装程序,估计是没有更新缓存或者生成首页文件。于是进入后台,找了半天生成HTML的功能,没有找到,当然,后来莫名奇妙的在哪里找到一个生成的选项,问题解决。不过,这个功能在哪里,到现在都记不住,更别说想起来。

接着发现了PHP168最致命的弱点。看PHP168的后台结构,无论如何都难以和其说的“模块化功能”结合起来。PHP168,把常见的网站管理功能,都写好以后,便成了所谓的模块?奇了。找半天也没有找到文章模型添加修改字段的地方。

更加奇妙的是,打管理文章内容界面,居然没有一个全选的功能,一页数十篇文章,居然只能一条一条手动删除。俺的神呀,打死我也想不通。

后来还试用了一些其它功能,发现他的文章“续发”功能还真是不错,每一篇文章也可以当成专题做,赞一个,这个功能用得老夫直叫爽呀。

然后总结一下PHP168的使用感受:凌乱的后台界面和功能布局、严重缺少Ajax的应用、模块化功能的严重欠缺,与PHPCMS、DEDEcms这样的“Web2.0”、“PHP开发框架”比起来,“PHP168整站是PHP领域当前功能最强大的建站系统”,应该加个“Web1.0时代”。

接下来讲一下如何实现PHP168加上批量发布图片的功能。

受火车采集器的功能限制,火车采集器采集并下载图片时,需要使用到正则匹配图片地址,直接采集图片是不会被下载的。如果我们要实现使用火车采集器采集并下载图片,再发布的话,需要在内容中连带图片代码一起采集,才能实现图片的下载。

发布时,火车采集器会把图片代码一并发布出来,我们要做的,仅仅是做一步“提取”图片的工作。把图片代码中的图片地址,提取出来然后转交给PHP168处理就好了。

修改PHP168/admin/artic.php 约99行的代码:

foreach( $photodb AS $key=>$value){
if(!$value){
unset($photodb[$key]);
}
}

改为

foreach( $photodb AS $key=>$value){
//正则获取代码中的图片地址
if(preg_match("@src=[\"|'| ]{0,}(.*?)[\"|'| |>]@is",stripslashes($value),$match)){
$photodb[$key] = $value = $match[1];
}

if(!$value){
unset($photodb[$key]);
}
}

发表评论

回复 到残忍 取消回复

评论列表(2)

  • 到残忍

    2013.8.8 09:08

    火车头如何自动给采集的文章添加图片,

    回复
  • momo

    2011.1.23 16:01

    555,我崇拜的php168被你说成这样了。。。

    回复