DEDE采集分页文章时相对路径问题解决方案

添加时间:12-03-02 所属分类:DedeCMS建站程序
  转载自http://www.im286.com/thread-9119435-1-1.html

今天在给我的 好妈妈育儿网采集文章的时候,发现DEDE采集文章分页时的一个bug。
正好今天晚上事情不多,这个小问题也勾起了我程序的职业兴趣。索性开两瓶啤酒,就一盘花生米,一边喝着小酒,一边debug DEDE的代码,最后把这个问题的根源找到并且解决了。

问题描述:

当采集目标文章中分页信息是绝对路径时(如 http://www.gudmama.com/a/tonghuagushi/2 ... 120_2.html)DEDE可以正确采集。
当采集目标文章中分页信息是相对路径,但是以 '/'开头(如 /a/tonghuagushi/20120218/55120_2.html)DEDE也可以正确采集。
当采集目标文章中分页信息是相对路径,但不是以 '/'开头(如 a/tonghuagushi/20120218/55120_2.html)DEDE就不能正确采集了。


解决方案:

问题的根源出在 dedehtml2.class.php 中的 FillUrl 函数上。
大概在394行左右:

[code] if( strlen($surl) < 7 )
{
$okurl = $this->BaseUrlPath.'/'.$surl;
}
else if( strtolower(substr($surl,0,7))=='http://' )
{
$okurl = preg_replace('/^http:\/\//i', '', $surl);
}
else
{
//$okurl = $this->BaseUrlPath.'/'.$surl;
$okurl = $this->HomeUrl.'/'.$surl; //gudmama.com fixed the issue on 2012/03/01
}[/code]

被注释掉的代码是原始的,后面一行是我加上去fix这个问题的。
稍微懂点程序的明眼人一看,就知道原始的程序肯定有问题,第一个if 和最后一个else里面的代码是一样的。
这样肯定没有意义。不知道dede的程序员是怎么review代码的。
今天算义务打工一次,帮dede fix了这个问题。希望能给遇到同样问题的站长提供帮助。

前篇:养老金双轨制遭诟病 公务员退休金高出企业6... 后篇:BurstNet月付4.76美元 512M 20G 1T流量
发表我的评论


推荐文章   济南曲水亭街缠蜜摊位十二年未涨价 只...   他曾放弃300倍高薪回国,造出天眼领先世...   13年前,那个骑车绕了地球18圈的英雄走...   多子与丁克:少数派人生   济南皮影戏的发展传承
随机文章   dedecms 标签中运行PHP程序代码   dedecms安全设置和去除所有自带后门和漏...   DEDE采集分页文章时相对路径问题解决方...   DedeCMS发布图集时远程调用图片的修改 ...   DedeCMS编辑文章时下载远程图片和资源关...
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555