バージョン選択

フォーラム

メニュー

オンライン状況

181 人のユーザが現在オンラインです。 (170 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 181
もっと...

サイト内検索

質問 > 管理機能 > 商品マスタCSV出力時の[ " ] [ \ ]について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuta
投稿日時: 2009/2/4 15:15
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
商品マスタCSV出力時の[ " ] [ \ ]について
みなさまこんにちは。
先月よりEC-CUBEで店舗作成を行っている者です。

商品マスタCSVについてわからないことがあり、
皆様の力をおかしいただきたいと思いまして書き込みさせていただきました。


商品のメインコメント欄等でHTMLタグを使用しているのですが、
このタグの中に「"」が含まれる場合、その周辺で「\」が挿入されたり置換されたりしてCSVが生成されてしまいます。


例)

【元データ】
<div class="aaaa">...
<div id="bbb">...



【CSVのダウンロードデータ】
<div class=\aaaa\">...
<div id=\"bbb\">...


のように\があちこちに挿入された状態でCSVデータが作成されています。

どのようにすれば[\]が生成されないように設定できるのでしょうか?
ご存知の方がいらっしゃいましたら教えていただけませんでしょうか、よろしくお願いいたします。

------------------------------
[EC-CUBE] 2.3.3
[レンタルサーバ] つかえるねっとアドバンス
[OS] Linux p28.jpnsv.com 2.6.18-028stab059.5 #1 SMP Fri Oct 24 17:50:54 MSD 2008 x86_64
[PHP] 5.1.6
[データベース] MySQL 5.0.45
[WEBサーバ] Apache/2.2.3 (CentOS)
[ブラウザ] 使用しているブラウザ名、バージョン
------------------------------
seasoft
投稿日時: 2009/2/4 15:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
\data\class\helper\SC_Helper_CSV.php の
                $tmp = str_replace("\"", "\\\"", $tmp);

を削除すれば良い気がしますが、CSV的に、それで良いのか疑問です。
現実装も、本当に適切なのか疑問もありますが。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

yuta
投稿日時: 2009/2/4 15:58
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
>seasoftさん

ありがとうございます!
早速試してみたところ、\が消えました!

ただ、
各項目で一番初めに出てくる
["]
が消えて、最後の部分に
["]
がつくようになりました。

---------------------------------
例)
元のデータ
<div class="aaaa">..........</div>

ダウンロードデータ
<div class=aaaa">..........</div>"

---------------------------------

phpがほとんどわからないもので、
グーグル検索してもいまいちどこをいじれば良いかわかりませんでした・・・

何度も質問ばかりですみませんが、
もしお分かりでしたらアドバイスお願いします。
seasoft
投稿日時: 2009/2/4 16:10
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
ファイルの内容確認は何のソフトで行っていますか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

yuta
投稿日時: 2009/2/4 16:46
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
OpenOffice 3.0.0
のCalcを使っています。

今の状態でも各項目で置換を行えば綺麗なファイルがだせるので、
簡単に何とかなる状態ではあります。

openoffice
http://ja.openoffice.org/
seasoft
投稿日時: 2009/2/4 17:05
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
まずは、プレーンテキストを読めるソフト(秀丸エディタやメモ帳)で確認すると良いとおもう。

表計算ソフトは、読み込み時に変換するから。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

yuta
投稿日時: 2009/2/4 17:21
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
有り難うございます。サクラエディタで確認しましたところ、正しく出力されておりました。表計算ソフトの読み込みの際のエラーだったようです。

ついでに現在出店中の某ショッピングモールでダウンロードしたCSVデータを見てみました。
こちらのCSVデータは今までOpenOfficeでもエクセルでもエラーがでていなかったため、なぜだろう?と思ったので。

そうすると、こちらは逆に以下のような仕様となっていました。

◎某ショッピングモールの仕様
【元データ】
<div class="aaa">....

【ダウンロード用csvデータ】
<div class=""aaa"">


["]の部分に[\]を追加し[\"]とするのではなく
["]の部分にもう一つ["]を足し[""]とすることで、
一般的な表計算ソフトでcsv読み込み時に指定される、
「テキストの区切り記号(")」
によるエラーを回避していました。

ということは、最初に削除した、
$tmp = str_replace("\"", "\\\"", $tmp);

をうまくいじれば[""]としてのCSV出力が可能なのでしょうか?
seasoft
投稿日時: 2009/2/4 17:58
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
私が上で「現実装も、本当に適切なのか疑問もあります」と書いたのは、まさに yuta 様がご指摘されている部分なんですよね。

CSV って、ある程度基本は決まっていても、実装によって様々なんですよね。「 " → "" 」や「 " → \" 」は、どれが正しいとは言い切れない面があるんですよね。

ちゃんと確認してはいませんが、EC-CUBE でCSV出力して、EC-CUBE でCSV入力するケースでは「 " → \" 」という変換が正しいのでしょう。

その、EC-CUBE 用のCSVを他のソフトで読んでいるのですから、変になって当然なのです。

しかし、「 " → \" 」という変換をするならば、事前に「 \ → \\ 」という変換も行う必要があるはずなんですよね。その辺りを行っていないのも、個人的には疑問ですね。


まぁ、それはさておき、yuta 様の目的を達成するには、
$tmp = str_replace("\"", "\"\"", $tmp);
かな。

ただし、その CSV は OO-calc 向けのファイルになりますので、EC-CUBE に読み込ませると異常動作をすると思いますのでご承知を。


文字の「エスケープ」について勉強されると、理解できるようになると思いますよ。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

yuta
投稿日時: 2009/2/4 18:32
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
ありがとうございます!
教えていただいた、

$tmp = str_replace("\"", "\"\"", $tmp);

で試したところ、無事に動作いたしました。
本当に有り難うございました!!
CSV更新テストもしましたが今のところ無事に動いています。


「 " → "" 」

「 " → \" 」
も、

CSVダウンロード時に追加されるもののようですが、
CSVアップロードで更新作業をする際には再び、

「 " → " 」
または
「 "\ → " 」
と余分な文字を削除して
「"」
の状態にもどし、新しいCSVで新規登録するときと同じ規格でアップロードするから大丈夫なのではないでしょうか??
(もしエラーがでるなら新規CSVの登録時にもエラーとなるはず??)

しばらくこのままでCSVでの作業を行ってみて
もしもエラーが出たら報告致します!

文字の「エスケープ」についても調べて勉強してみますね、
どうもありがとうございました!



p.s.
良くわかりませんが、今回のことを調べていたときに以下のサイトにも情報がありました。
私にはまだわかりませんが、参考になるかもしれないのでリンク張っておきます。
▼参考サイト
http://www.jaga99.com/blog/?cat=5
seasoft
投稿日時: 2009/2/10 12:14
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
某ショッピングサイト構築案件で、CSV 登録について調べていたら、CSV に関する RFC が出てますね。

RFC4180
http://www.rfc-editor.org/rfc/rfc4180.txt

ざっと確認した限り、Excel も RFC 準拠ですね。

・・・結論。EC-CUBE の CSV も RFC 準拠に改訂しようかと思うのですが、いかがでしょう?

# そういえば、PHP にも CSV を扱える関数があったような気がしますが、それって RFC に準拠しているのかなぁ〜?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,117名です
総投稿数は110,319件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1682
8
red
1571
9
mcontact
1351
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.