这篇文章主要为大家展示了“phpcms v9采集中遇到相对路径问题怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“phpcms v9采集中遇到相对路径问题怎么办”这篇文章吧。
一、采集网址时,遇上网址是相对路径的问题。(网上抄的,可用)
修改数据库v9_collection_node,增加两个字段replace_from,replace_to(varchar(200))
1、 /phpcms/modules/collection/templates/node_form.tpl.php第99行后增加(位置在</table></fieldset>之前)
<tr>
<td width="120">网址替换:</td>
<td>
<input type="text" name="data[replace_from]" value="<?php if(isset($data['replace_from'])) echo $data['replace_from']?>"/>替换为
<input type="text" name="data[replace_to]" value="<?php if(isset($data['replace_to'])) echo $data['replace_to']?>"/>
</td>
</tr>
2、 /phpcms/modules/collection/classes/collection.class.php第177行后增加(位置在:$html = str_replace(array("</a>", "</A>"), "</a> ", $html);之后)
if(!empty($config['replace_from'])){
$html = str_replace($config['replace_from'], $config['replace_to'], $html);}
3、 进入数据库给 数据库名_collection_node 增加字段:replace_from 和 replace_to 两个字段。字数50-100都可以。
然后在采集管理中我们能看到有替换网址的选项啦。将多余的../之类的替换掉就行了。
二、采集内容页中包含相对路径的问题。(原创)
修改phpcms/modules/collection/classes/collection.class.php中get_content方法
在return $data;前面加入2行代码
$data=str_replace('./','',$data);//这句把所有./去掉
$data=str_replace('http://qxj.nanjing.gov.cn/xwzx/qxyw_1',dirname($url),$data);
//这句把错误的地址替换为正确地址。其中http://qxj.nanjing.gov.cn/xwzx/qxyw_1这个地址是我的地址,记得换哦。
以上是“phpcms v9采集中遇到相对路径问题怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!