vip 发表于 2016-7-31 13:18:24

ecshop图片路径相对地址改为绝对地址

在 ecshop 系统源码中,ecshop 对于图片的处理,使用了相对路径,有些情况我们也需要使用绝对路径,比如广告图片,还有一些附件什么的,这个是要看什么情况下使用的
一,我们先看一下如何把 ecshop 广告图片 /data/afficheimg/ 相对路径改为绝对路径地址吧。
首先打开控制图片路径的函数,找到 includes/lib_insert.php 文件,查找 functions insert_ads($arr)函数,如下代码:

case 0: // 图片广告   
$src = (strpos($row['ad_code'], 'http://') === false && strpos($row['ad_code'], 'https://') === false) ?   
'http://www.cybn.cn/'.DATA_DIR . "/afficheimg/$row" : $row['ad_code'];

好了,再去看看自己的广告图片地址吧,现在已经改为绝对地址了。

二,有的时候还需要将 ecshop 产品图片的相对路径改为绝对路径地址,我们先来看一下如何进行修改吧。
修改Includes/lib_common.php文件中的function get_image_path函数,搜索:重写 URL 地址,在下面的function build_uri函数中,在 $uri = ''; 的下面增加 $weburl = 'http://'.$_SERVER['SERVER_NAME'].'/';
再把下面return $uri;替换成return $weburl . $uri;

找到图片格式化函数get_image_path 把return $url;

return (strpos($url, 'http://') === false && strpos($url, 'https://') === false) ?'http://www.cybn.cn/'.$url : $url;   

修改好以后就是下面这个样子了:

function get_image_path($goods_id, $image='', $thumb=false, $call='goods', $del=false) {      $url = emptyempty($image) ? $GLOBALS['_CFG']['no_picture'] : $image;      return (strpos($url, 'http://') === false && strpos($url, 'https://') === false) ?'http://www.cybn.cn/'.$url : $url; }   

三,再来介绍一下 ecshop 商品详情页里面的图片如何改为绝对路径。

这个就更简单了,直接在数据库里面进行修改,打开 phpmyadmin,执行如下的 sql 语句:

update ecs_goods set goods_desc=replace (goods_desc,'src="/images/upload/','src=" http://www.cybn.cn/images/upload/')   

如果没有 phpmyadmin 的话,还可以在 ecshop 后台》数据库管理》SQL查询里面去执行。

注意点:不管对 ecshop 文件修改还是对 mysql 数据库修改,还是老样子,一定要记得提前进行文件与数据库的备份,对了,这些相对路径改为绝对路径,许多人不明白究竟是要干嘛,为什么一定要这样修改,实际上根本不用这样修改,

页: [1]
查看完整版本: ecshop图片路径相对地址改为绝对地址