ECshop在导入淘宝数据包的时候出现数据乱码。php
测试版本 ecshop2.73数组
利用淘宝助手导出一个数据包(.csv),不要一次所有商品导出,最好是将数据包控制在1M左右,由于ecshop对上传文件有限制。编辑器
一、用编辑器打开文件goods_batch.php,文件在admin文件夹下,找到测试
$data=file($_FILES['file']['tmp_name']);编码
并将此行注释掉。在下边加上 spa
$data0=mb_convert_encoding(file_get_contents($_FILES['file']['tmp_name']),"utf-8","UTF-16LE");code
注:utf-8是ecshop的版本编码,若是是gbk则这里是gbkblog
二、继续添加代码图片
$data=str_replace("\"\"","\"",$data0);utf-8
$data=explode('欧韩站外贸仓,$data);
欧韩站外贸仓是店铺的名字,将这个换成你店铺的名字便可。
三、这里开始要特别注意,由于csv文件的开头有一部分说明,因此要针对首行特别处理。
if($k==0){ $goods_name_arr = explode('"',$line_list[98]); $goods_name = $goods_name_arr[1]; $shop_price = $line_list[105]; $goods_number = $line_list[107]; $imgsstr = $line_list[126]; $goods_desc =str_replace("\"","'",substr($line_list[118],1,strlen($line_list[118])-2)); }else{$goods_name_arr = explode('"',$line_list[10]); $goods_name = $goods_name_arr[1]; //$goods_name = trim($line_list[10],'"'); $shop_price = $line_list[17]; $goods_number = $line_list[19]; $imgsstr = $line_list[38]; $goods_desc = str_replace("\"","'",substr($line_list[30],1,strlen($line_list[30])-2)); }
这里的$line_list[]可能会由于店铺商品属性不同致使数据提取错误,能够先print_r($line_list)而后修改错误的数组下标。
四、到了这里数据的提取基本上完成了,下面就要对提取的数据进行处理并赋值给数组。其实也只是图片的数据须要处理一下,具体以下:
$imgasd=str_replace("\"","",$imgsstr); $imgasd=explode(";",$imgasd); foreach($imgasd as $ks=>$vs){ if($ks!=count($imgasd)-1){ $nv=explode("|",$vs); $in=explode(":",$nv[0]); $imgs_u.=$in[0].".jpg;"; } } $arr['original_img'] = $imgs_u;
五、最后要处理的数据就是图片的路径。找到if (!empty($field_arr['original_img']))的位置,有这里开始注释,一直到//修改商品图这里,而后再注释//添加商品相册图下面的if代码。