バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > 管理機能 > 商品登録CSVで最終行の内容判定が行われない可能性がある

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pantacle
投稿日時: 2012/6/18 0:17
対応状況: −−−
長老
登録日: 2009/6/29
居住地: 富山
投稿: 242
商品登録CSVで最終行の内容判定が行われない可能性がある
あまり無いケースだとは思いますが、商品登録CSVでハマったので。

CSVの最終行に改行が無い場合、最終行の内容チェックが行われません。
aaaa,bbbb,cccc[改行]
[EOF]
ではなく、
aaaa,bbbb,cccc[EOF]
の様な場合。

LC_Page_Admin_Products_UploadCSV.phpの↓処理で、行入力後にEOF判定してcontinueしてしまうため。

    while (!feof($fp)) {
        $arrCSV = fgetcsv($fp, CSV_LINE_MAX);

        // 全行入力チェック後に、ファイルポインターを先頭に戻す
        if (feof($fp) && !$all_line_checked) {
            rewind($fp);
            $line_count = 0;
            $all_line_checked = true;
            continue;
        }


普通に作る限り、最終行に改行がないCSVというモノはまぁあり得ないとは言え、↓のように改行がある事を期待しない方が安全かと思われます。

    while (true) {
        if (feof($fp)) {
            if ($all_line_checked) {
                break;
            }

            rewind($fp);
            $line_count = 0;
            $all_line_checked = true;
        }

        $arrCSV = fgetcsv($fp, CSV_LINE_MAX);


----------------
pantacle
http://pantacle.net/

seasoft
投稿日時: 2012/6/18 6:35
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品登録CSVで最終行の内容判定が行われない可能性がある
なるほど。RFC 4180 にも、「The last record in the file may or may not have an ending line break.」って書いてありますね。

まずは、チケットを発行しました。
http://svn.ec-cube.net/open_trac/ticket/1871


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

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,708名です
総投稿数は109,948件です

投稿数ランキング

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