A-A+

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

2015年12月20日 PHP开源系统 暂无评论 阅读 9 views 次

在 ecshop 系统源码中,ecshop 对于图片的处理,使用了相对路径,当然这也是大多数开源系统所采用的方法,这样就不至于我们在更换域名神马的情况下,图片出现不显示的情况了。

但有些情况我们也需要使用绝对路径,比如广告图片,还有一些附件什么的,这个是要看什么情况下使用的吧,夏日博客最近遇到广告图的绝对路径更换,所以就小小的研究了一下。

一,我们先看一下如何把 ecshop 广告图片 /data/afficheimg/ 相对路径改为绝对路径地址吧。

首先打开控制图片路径的函数,找到 includes/lib_insert.php 文件,查找 functions insert_ads($arr)函数,如下代码:

  1. case 0: // 图片广告    
  2.   $src = (strpos($row['ad_code'], 'http://') === false && strpos($row['ad_code'], 'https://') === false) ?    
  3.   'http://www.xiariboke.net/'.DATA_DIR . "/afficheimg/$row[ad_code]" : $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;

  1. return (strpos($url, 'http://') === false && strpos($url, 'https://') === false) ?  'https://www.xiariboke.net/'.$url : $url;    

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

  1. 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) ?  'https://www.xiariboke.net/'.$url : $url; }    

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

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

  1. update ecs_goods set goods_desc=replace (goods_desc,'src="/images/upload/','src=" http://www.xiariboke.net/images/upload/')   

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

注意点:不管对 ecshop 文件修改还是对 mysql 数据库修改,还是老样子,一定要记得提前进行文件与数据库的备份,对了,这些相对路径改为绝对路径,许多人不明白究竟是要干嘛,为什么一定要这样修改,实际上根本不用这样修改,只是夏日博客遇到这样的一个项目,就是客户要求程序与图片进行分享来减轻服务器的压力,把所有的广告图片甚至产品图片保存到了另外的一个服务器上面,所以没办法,只好将当前 ecshop 站点的图片路径更改为另一个站点了,而另一个站点只负责保存图片,当然,除了图片更改为绝对路径外,还有附件也都可以更改,我们可以举一反三。

标签:

给我留言