バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2009/2/10 14:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
いつも有用な情報提供ありがとうございます。

PHP 関数に任せて、サクっと・・・と思いましたが、なかなか難がありそうですね。

現実装を見ましたが、結構バラバラと書かれていて、変更箇所が多そう。とりあえず、主要部分の対応にしようかな…

あと、気になったのは SC_Utils に、CSV 関係のメソッドが存在していることですが、SC_Helper_CSV との住み分けとかあるのですかね?


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

nanasess
投稿日時: 2009/2/10 13:00
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
おおこうちです.

引用:

seasoftさんは書きました:
某ショッピングサイト構築案件で、CSV 登録について調べていたら、CSV に関する RFC が出てますね。

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


こちらは Informational ですので, 正式な標準化ではなくて, 「こうした方が良いよ」という「情報」ですね.

引用:

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


1.x → 2.x の時に試みましたが, 完全に準拠しようと思うと, 非常にしんどいので断念しましたorz

本来なら, charset や, ヘッダ行の有無も mime-type で指定するとか,
may or may not な規定がいくつかあるとか...

あと, text/csv な mime-type で, すべての UA が確実に DL できるかどうかが心配です.
application/octet-stream にしておくのが無難だと思います.

引用:

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


詳細は失念してしまいましたが, かなりイケてない関数なので準拠してないと思われますorz
seasoft
投稿日時: 2009/2/10 12:14
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
某ショッピングサイト構築案件で、CSV 登録について調べていたら、CSV に関する RFC が出てますね。

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

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

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

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


----------------
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/4 17:58
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
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 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:05
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
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 16:10
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
ファイルの内容確認は何のソフトで行っていますか?


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

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

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

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

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

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

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

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

何度も質問ばかりですみませんが、
もしお分かりでしたらアドバイスお願いします。
« 1 (2) 3 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,269名です
総投稿数は110,060件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1299
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.