新聞中心
Ecshop使用網(wǎng)站那后臺批量上傳CSV格式的商品數(shù)據(jù)包的出現(xiàn)亂碼
無憂小編深深的體會到使用一款比較完美的開源程序來搭建商城也不是一件那么容易的事情,商城搭建好了,首先要選好適合自己商城展現(xiàn)的模板,然后就是在網(wǎng)站后臺發(fā)布商品的詳細(xì)參數(shù)信息,例如在添加每一款新商品的時候都需要填寫商品名稱,商品貨號,品牌,價格,顏色,型號,商品的縮略圖等等。這樣發(fā)布只是針對一個一個的更新產(chǎn)品的時候采用,但是試想下如果一次需要發(fā)布上千件商品這樣做是不是極大的浪費(fèi)了時間,效率太低了。因此很多客戶使用了是先把商品的這些信息都收集好然而創(chuàng)建一個Excel表格,然后把收集好的數(shù)據(jù)放到這個表格里,再另存為CSV格式的數(shù)據(jù)包。建站的站長朋友們都知道CSV格式的數(shù)據(jù)包是可以使用mysql數(shù)據(jù)庫導(dǎo)入的,但是Ecshop這款程序非常強(qiáng)大在網(wǎng)站后臺就可以把這個數(shù)據(jù)包導(dǎo)入了。如下圖所示: [caption id="attachment_15980" align="alignnone" width="554"] ecshop后臺截圖[/caption] 這個功能的確很強(qiáng)大,但是Ecshop開源程序畢竟是開源的,很多功能的使用還是需要自己二次開發(fā)的,小編就遇到了很多站長在使用批量上傳商品的時候出現(xiàn)了亂碼現(xiàn)象。字段完全和數(shù)據(jù)庫中的對不上,可以說是Ecshop讀CSV格式太弱了,那么該如何才能順利的導(dǎo)入呢? 經(jīng)過小編花了半天的功夫研究出使用file方法將每行作為一個記錄讀入數(shù)組$data中。就可以解決了。但是ECShop根據(jù)上傳時選擇的編碼類型,如果不是UTF-8則會強(qiáng)制轉(zhuǎn)換成UTF-8。但也只是支持中文GB2312編碼,客戶上傳的數(shù)據(jù)包卻是Unicode編碼。還會有亂碼現(xiàn)象還要在上傳后讓它自動轉(zhuǎn)化為UTF-8格式就可以了。具體的步驟如下: 首先連接FTp軟件找到在admin/目錄下找到good_batch.php這段代碼 如下: /*將文件按行讀入數(shù)組,逐行進(jìn)行解析*/ $line_number=0; $arr=array(); $goods_list=array(); $field_list=array_keys($_LANG['upload_goods']);//字段列表 $data=file($_FILES['file']['tmp_name']); //轉(zhuǎn)換編碼 if(($_POST['charset']!='UTF8')&&(strpos(strtolower(EC_CHARSET),'utf')===0)) { $line=ecs_iconv($_POST['charset'],'UTF8',$line); } 修改為以下代碼: /*將文件按行讀入數(shù)組,逐行進(jìn)行解析*/ $line_number=0; $arr=array(); $goods_list=array(); $field_list=array_keys($_LANG['upload_goods']);//字段列表 $reader=newSpreadsheet_Excel_Reader(); $reader->setOutputEncoding('utf-8'); $reader->read($_FILES['file']['tmp_name']); $data=$reader->sheets[0]['cells']; 因為原來程序代碼中phpExcelReader包含兩個文件,使用時需要將Excel/reader.phpinclude讀入進(jìn)來,否則當(dāng)然數(shù)據(jù)會出現(xiàn)讀不完整導(dǎo)致亂碼等現(xiàn)象出現(xiàn)了,修改好了上傳覆蓋之前的文件然后再登陸網(wǎng)站后臺更新下緩存就可以解決這個問題了。 無憂主機(jī)相關(guān)文章推薦閱讀: ECSHOP刪除訂單時提示“以下訂單無法被移除” ECSHOP添加角色管理的時候,出現(xiàn)錯誤解決方法 ECSHOP客戶下單后如何刪除或隱藏購物車中的商品屬性的價格 ECSHOP出現(xiàn)/LANGUAGES//COMMON.PHP) [FUNCTION 問題解決方法
本文地址:http://www.gle-technology.com/ecshop/15979.html