EC-CUBEはcsvでダウンロードし、csvでアップロードができます。
csvダウンロードしたとき、タグに「”(ダブルクオーツ)」を使っているとその前に「\(←円マーク)」いわゆるエスケープキーがついて来ます。
このデータをcsvアップロードでアップロードすると、エスケープキーで入れたはずの円マークが、テキストとして登録されます。
もしくは、このcsvをエクセルで変更した場合、エスケープキーのはずの円マークがテキストになってしまいます。
その結果、円マークはエスケープではなくて、テキストとして解釈されます。
このデータを再びcsvでダウンロードした場合、円マークはエスケープキーが付きます。
この繰り返しで、どんどんとエスケープキーが付いたりしていきます。
これをなんとかしたい・・・・・・。
admin\products\index_csv.php
のL156あたりに、
$tmp = str_replace(“\””, “\\\“”, $tmp);(\は円マーク)
という記述がありますので、それを以下のように変えます。
switch($key) {
ツꀀツꀀツꀀcase ‘main_comment’:
ツꀀツꀀツꀀcase ‘sub_comment1’:
ツꀀツꀀツꀀcase ‘sub_comment2’:
ツꀀツꀀツꀀcase ‘sub_comment3’:
ツꀀツꀀツꀀcase ‘sub_comment4’:
ツꀀツꀀツꀀcase ‘sub_comment5’:
ツꀀツꀀツꀀcase ‘sub_comment6’:
ツꀀツꀀツꀀツꀀ$tmp = str_replace(“\””, “‘”, $tmp);
ツꀀツꀀツꀀツꀀbreak;
ツꀀツꀀツꀀdefault:
ツꀀツꀀツꀀツꀀ$tmp = str_replace(“\””, “\\\“”, $tmp);
ツꀀツꀀツꀀ}
タグで使った”を’に変えるための変更です。
ちなみに、改行コードを消す(タグのところで改行を使っている場合)のは下記。
この改行コード、CSVだと邪魔なのです。(1行が1レコードというつくりが崩れるから)
ツꀀツꀀ//▼
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $line = str_replace(“\n\r”,””, $line);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $line = str_replace(“\r”,””, $line);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $line = str_replace(“\n”,””, $line);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ //▲
コメントを残す