バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

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

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

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

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


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

nanasess
投稿日時: 2009/2/10 15:35
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
引用:

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


SC_Utils は, どの機能からでも static で呼び出せるような, 汎用性のある関数を置いています.
極端に言えば, EC-CUBE 以外のシステムへ移植しても動くと思います.

SC_Helper_CSV は, CSV を扱う機能固有の関数を外出しにしています.

SC_Utils の CSV 関連の関数は, 他の箇所からアクセスしていなければ, すべて SC_Helper_CSV が保持するように変更した方がすっきりしそうですね.
seasoft
投稿日時: 2009/2/10 20:41
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
いやぁ〜 驚いた。

読み込みは fgetcsv() を使っていますね。

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

もはや、現状の CSV 書き出しがバグに思えてきました。


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

yuta
投稿日時: 2009/2/11 10:15
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
nanasess様、seasoft様
調査ありがとうございます。

私はといいますと、先日教えていただいた

\data\class\helper\SC_Helper_CSV.php 内の

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

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

に修正してからは、CSVでデータ更新をかなり頻繁に行っていますが、おっしゃるとおり全く問題なく使用できています。




引用:

seasoftさんは書きました:
いやぁ〜 驚いた。

読み込みは fgetcsv() を使っていますね。

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

もはや、現状の CSV 書き出しがバグに思えてきました。
seasoft
投稿日時: 2009/2/11 12:31
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
> yuta 様

OpenOffice では商品ステータスが乱れるという問題は発生していませんか?

当方で Excel にて試験した結果、下記の条件の場合に乱れが発生しました。
・1番目の商品ステータスが OFF(0)
・2番目以降の商品ステータスが ON(1)
(Ex) 00101 → 101 ( = 10100 )

CVS登録のロジックを右詰にすれば回避可能だとは思うのですが、それも微妙な気もするし、少々悩ましいです。


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

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

確認してみました。
確かに指定と違う部分のステータスが反応していました。

保存するときに
00101

101
になっていたようでした。

OpenOfficeでは
「書式設定」⇒「数」⇒「テキスト」
として保存したら
00101
のまま登録できて解決しました。
seasoft
投稿日時: 2009/2/12 11:58
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
情報ありがとうございます。

OOo だと、後からの書式変更で対応できるんですね。
Excel は、読み込み時に変換されてしまって、前ゼロが失われているんですよね・・・


一応、RFC に極力準拠した共通処理を実装し、商品マスタとカテゴリは書き換えました。もう少しテストを重ねて、EC-CUBEコミュニティ(eccube-comu)へコミットをしようかと考えています。


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

seasoft
投稿日時: 2009/2/12 12:11
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品マスタCSV出力時の[ " ] [ \ ]について
引用:
詳細は失念してしまいましたが, かなりイケてない関数なので準拠してないと思われますorz


現状で利用している fgetcsv() も、バグありますね。
「\""」自体は意図したとおり「\"」として解釈されるのですが、なぜか末尾に「"」が付きますね。

(例)
あ\""あ → あ\"あ"

PHP は(も?)、バグレポートの対応に時間掛かるしなぁ・・・


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

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

失礼しました。
ダウンロードしたデータの話ですね。

ダウンロードして普通にデータ開くと先頭の”0”は消えてしまいますが、データを開くときに列を選択して、

”列の種類” ⇒ ”テキスト”

を指定すると0を表示したままデータを開けます。

Excellではこちらのホームページを参考にしましたが、
なぜかうまく開けませんでした。。
http://www.eccube-school.jp/products/detail54.html

余談ですが、楽天のデータを編集するときもEXcellではエラーが多かった(単に自分の知識がないためだと思いますが)ので、CSVを扱うときはOpenofficeにしています。

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


 



ログイン


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

統計情報

総メンバー数は88,900名です
総投稿数は110,006件です

投稿数ランキング

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