网络营销电子商务研究中心

网络营销电子商务研究中心 (https://www.0058.net/index.php)
-   DedeCMS (https://www.0058.net/forumdisplay.php?f=71)
-   -   Dede采集分页文章时相对路径问题解决方案 (https://www.0058.net/showthread.php?t=4388)

topvip 2012-07-16 01:55 PM

Dede采集分页文章时相对路径问题解决方案
 
使用DedeCMS在采集文章的时候,发现DEDE采集文章相对路径文章时的一个bug,上网查询了一个晚上终于找到类似问题的解决办法,最后把这个问题的根源找到并且解决了。

问题描述:

  当采集目标文章中列表或者分页信息是绝对路径时,DEDE可以正确采集。
  当采集目标文章中列表或者分页信息是相对路径,但是以 '/'开头(如 /2012/0328/1943.html)DEDE也可以正确采集。
  当采集目标文章中列表或者分页信息是相对路径,但不是以 '/'开头(如 2012/0328/1943.html)DEDE就不能正确采集了。

解决方案:

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

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;
}  被注释掉的(红色)代码是原始的,增加下面一行(绿色)代码问题就解决了。


All times are GMT +8. The time now is 12:38 AM.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.