質問 > 管理機能 > 商品マスタ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 居住地: 投稿: 7342 |
Re: 商品マスタCSV出力時の[ " ] [ \ ]について \data\class\helper\SC_Helper_CSV.php の
を削除すれば良い気がしますが、CSV的に、それで良いのか疑問です。 現実装も、本当に適切なのか疑問もありますが。
|
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 居住地: 投稿: 7342 |
Re: 商品マスタCSV出力時の[ " ] [ \ ]について ファイルの内容確認は何のソフトで行っていますか?
|
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 居住地: 投稿: 7342 |
Re: 商品マスタCSV出力時の[ " ] [ \ ]について まずは、プレーンテキストを読めるソフト(秀丸エディタやメモ帳)で確認すると良いとおもう。
表計算ソフトは、読み込み時に変換するから。
|
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 居住地: 投稿: 7342 |
Re: 商品マスタCSV出力時の[ " ] [ \ ]について 私が上で「現実装も、本当に適切なのか疑問もあります」と書いたのは、まさに yuta 様がご指摘されている部分なんですよね。
CSV って、ある程度基本は決まっていても、実装によって様々なんですよね。「 " → "" 」や「 " → \" 」は、どれが正しいとは言い切れない面があるんですよね。 ちゃんと確認してはいませんが、EC-CUBE でCSV出力して、EC-CUBE でCSV入力するケースでは「 " → \" 」という変換が正しいのでしょう。 その、EC-CUBE 用のCSVを他のソフトで読んでいるのですから、変になって当然なのです。 しかし、「 " → \" 」という変換をするならば、事前に「 \ → \\ 」という変換も行う必要があるはずなんですよね。その辺りを行っていないのも、個人的には疑問ですね。 まぁ、それはさておき、yuta 様の目的を達成するには、
ただし、その CSV は OO-calc 向けのファイルになりますので、EC-CUBE に読み込ませると異常動作をすると思いますのでご承知を。 文字の「エスケープ」について勉強されると、理解できるようになると思いますよ。
|
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 居住地: 投稿: 7342 |
Re: 商品マスタCSV出力時の[ " ] [ \ ]について 某ショッピングサイト構築案件で、CSV 登録について調べていたら、CSV に関する RFC が出てますね。
RFC4180 http://www.rfc-editor.org/rfc/rfc4180.txt ざっと確認した限り、Excel も RFC 準拠ですね。 ・・・結論。EC-CUBE の CSV も RFC 準拠に改訂しようかと思うのですが、いかがでしょう? # そういえば、PHP にも CSV を扱える関数があったような気がしますが、それって RFC に準拠しているのかなぁ〜?
|
(1) 2 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |