Ignore:
Timestamp:
2007/08/30 15:11:00 (17 years ago)
Author:
nanasess
Message:

クラス化対応(要テスト)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/admin/products/upload_csv.php

    r15080 r15472  
    55 * http://www.lockon.co.jp/ 
    66 */ 
    7 mb_language('Japanese'); 
    87 
    9 require_once("../require.php"); 
     8// {{{ requires 
     9require_once("../../require.php"); 
     10require_once(CLASS_PATH . "page_extends/admin/products/LC_Page_Admin_Products_UploadCSV_Ex.php"); 
    1011 
    11 class LC_Page { 
    12     var $arrSession; 
    13     var $arrCSVErr; 
    14     function LC_Page() { 
    15         $this->tpl_mainpage = 'products/upload_csv.tpl'; 
    16         $this->tpl_subnavi = 'products/subnavi.tpl'; 
    17         $this->tpl_mainno = 'products'; 
    18         $this->tpl_subno = 'upload_csv'; 
    19     } 
    20 } 
     12// }}} 
     13// {{{ generate page 
    2114 
    22 $conn = new SC_DBConn(); 
    23 $objPage = new LC_Page(); 
    24 $objView = new SC_AdminView(); 
    25 $objSess = new SC_Session(); 
    26  
    27 // 認証可否の判定 
    28 sfIsSuccess($objSess); 
    29  
    30 // ファイル管理クラス 
    31 $objUpFile = new SC_UploadFile(IMAGE_TEMP_DIR, IMAGE_SAVE_DIR); 
    32 // ファイル情報の初期化 
    33 lfInitFile(); 
    34 // パラメータ管理クラス 
    35 $objFormParam = new SC_FormParam(); 
    36 // パラメータ情報の初期化 
    37 lfInitParam(); 
    38 $colmax = $objFormParam->getCount(); 
    39 $objFormParam->setHtmlDispNameArray(); 
    40 $objPage->arrTitle = $objFormParam->getHtmlDispNameArray(); 
    41  
    42 switch($_POST['mode']) { 
    43 case 'csv_upload': 
    44     $err = false; 
    45     // エラーチェック 
    46     $arrErr['csv_file'] = $objUpFile->makeTempFile('csv_file'); 
    47      
    48     if($arrErr['css_file'] == "") { 
    49         $arrErr = $objUpFile->checkEXISTS(); 
    50     } 
    51  
    52     // 実行時間を制限しない 
    53     set_time_limit(0); 
    54      
    55     // 出力をバッファリングしない(==日本語自動変換もしない) 
    56     ob_end_clean(); 
    57      
    58     // IEのために256バイト空文字出力 
    59     echo str_pad('',256); 
    60          
    61     if($arrErr['csv_file'] == "") { 
    62         // 一時ファイル名の取得 
    63         $filepath = $objUpFile->getTempFilePath('csv_file'); 
    64         // エンコード 
    65         $enc_filepath = sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_DIR); 
    66          
    67         // レコード数を得る 
    68         $rec_count = lfCSVRecordCount($enc_filepath);        
    69          
    70         $fp = fopen($enc_filepath, "r"); 
    71         $line = 0;      // 行数 
    72         $regist = 0;    // 登録数 
    73          
    74         $objQuery = new SC_Query(); 
    75         $objQuery->begin(); 
    76          
    77         echo "■ CSV登録進捗状況 <br/><br/>\n";                 
    78                  
    79         while(!feof($fp) && !$err) { 
    80             $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
    81                          
    82             // 行カウント 
    83             $line++; 
    84              
    85             if($line <= 1) { 
    86                 continue; 
    87             }            
    88                                  
    89             // 項目数カウント 
    90             $max = count($arrCSV); 
    91              
    92             // 項目数が1以下の場合は無視する 
    93             if($max <= 1) { 
    94                 continue;            
    95             } 
    96              
    97             // 項目数チェック 
    98             if($max != $colmax) { 
    99                 echo "※ 項目数が" . $max . "個検出されました。項目数は" . $colmax . "個になります。</br>\n"; 
    100                 $err = true; 
    101             } else { 
    102                 // シーケンス配列を格納する。 
    103                 $objFormParam->setParam($arrCSV, true); 
    104                 $arrRet = $objFormParam->getHashArray(); 
    105                 $objFormParam->setParam($arrRet); 
    106                 // 入力値の変換 
    107                 $objFormParam->convParam(); 
    108                 // <br>なしでエラー取得する。 
    109                 $arrCSVErr = lfCheckError(); 
    110             } 
    111              
    112             // 入力エラーチェック 
    113             if(count($arrCSVErr) > 0) { 
    114                 echo "<font color=\"red\">■" . $line . "行目でエラーが発生しました。</font></br>\n"; 
    115                 foreach($arrCSVErr as $val) { 
    116                     echo "<font color=\"red\">$val</font></br>\n";   
    117                 } 
    118                 $err = true; 
    119             } 
    120              
    121             if(!$err) { 
    122                 lfRegistProduct($objQuery, $line); 
    123                 $regist++; 
    124             } 
    125             $arrParam = $objFormParam->getHashArray(); 
    126   
    127             if(!$err) echo $line." / ".$rec_count. "行目 (商品ID:".$arrParam['product_id']." / 商品名:".$arrParam['name'].")\n<br />"; 
    128             flush(); 
    129         } 
    130         fclose($fp); 
    131          
    132         if(!$err) { 
    133             $objQuery->commit(); 
    134             echo "■" . $regist . "件のレコードを登録しました。"; 
    135             // 商品件数カウント関数の実行 
    136             sfCategory_Count($objQuery); 
    137         } else { 
    138             $objQuery->rollback(); 
    139         } 
    140     } else { 
    141         foreach($arrErr as $val) { 
    142             echo "<font color=\"red\">$val</font></br>\n";   
    143         } 
    144     } 
    145     echo "<br/><a href=\"javascript:window.close()\">→閉じる</a>"; 
    146     flush(); 
    147     exit;    
    148     break; 
    149 default: 
    150     break; 
    151 } 
    152  
    153 $objView->assignobj($objPage); 
    154 $objView->display(MAIN_FRAME); 
    155  
    156 //-------------------------------------------------------------------------------------------------------------------------- 
    157  
    158 /*  
    159  * 関数名:lfInitFile 
    160  * 説明 :ファイル情報の初期化 
    161  */function lfInitFile() { 
    162     global $objUpFile; 
    163     $objUpFile->addFile("CSVファイル", 'csv_file', array('csv'), CSV_SIZE, true, 0, 0, false); 
    164 } 
    165  
    166 /*  
    167  * 関数名:lfInitParam 
    168  * 説明 :入力情報の初期化 
    169  */ 
    170 function lfInitParam() { 
    171     global $objFormParam; 
    172          
    173     $objFormParam->addParam("商品ID", "product_id", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    174     $objFormParam->addParam("商品規格ID", "product_class_id", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    175      
    176     $objFormParam->addParam("規格名1", "dummy1"); 
    177     $objFormParam->addParam("規格名2", "dummy2"); 
    178      
    179     $objFormParam->addParam("商品名", "name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    180     $objFormParam->addParam("公開フラグ(1:公開 2:非公開)", "status", INT_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    181     $objFormParam->addParam("商品ステータス", "product_flag", INT_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    182     $objFormParam->addParam("商品コード", "product_code", STEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    183     $objFormParam->addParam(NORMAL_PRICE_TITLE, "price01", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    184     $objFormParam->addParam(SALE_PRICE_TITLE, "price02", PRICE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    185     $objFormParam->addParam("在庫数", "stock", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    186     $objFormParam->addParam("送料", "deliv_fee", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    187     $objFormParam->addParam("ポイント付与率", "point_rate", PERCENTAGE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    188     $objFormParam->addParam("購入制限", "sale_limit", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    189     $objFormParam->addParam("メーカーURL", "comment1", URL_LEN, "KVa", array("SPTAB_CHECK","URL_CHECK","MAX_LENGTH_CHECK")); 
    190     $objFormParam->addParam("検索ワード", "comment3", LLTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    191     $objFormParam->addParam("一覧-メインコメント", "main_list_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    192     $objFormParam->addParam("一覧-メイン画像", "main_list_image", LTEXT_LEN, "KVa", array("EXIST_CHECK","FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    193     $objFormParam->addParam("メインコメント", "main_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    194     $objFormParam->addParam("メイン画像", "main_image", LTEXT_LEN, "KVa", array("EXIST_CHECK","FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    195     $objFormParam->addParam("メイン拡大画像", "main_large_image", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    196     $objFormParam->addParam("カラー比較画像", "file1", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    197     $objFormParam->addParam("商品詳細ファイル", "file2", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    198     $objFormParam->addParam("詳細-サブタイトル(1)", "sub_title1", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    199     $objFormParam->addParam("詳細-サブコメント(1)", "sub_comment1", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    200     $objFormParam->addParam("詳細-サブ画像(1)", "sub_image1", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    201     $objFormParam->addParam("詳細-サブ拡大画像(1)", "sub_large_image1", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    202      
    203     $objFormParam->addParam("詳細-サブタイトル(2)", "sub_title2", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    204     $objFormParam->addParam("詳細-サブコメント(2)", "sub_comment2", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    205     $objFormParam->addParam("詳細-サブ画像(2)", "sub_image2", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    206     $objFormParam->addParam("詳細-サブ拡大画像(2)", "sub_large_image2", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    207      
    208     $objFormParam->addParam("詳細-サブタイトル(3)", "sub_title3", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    209     $objFormParam->addParam("詳細-サブコメント(3)", "sub_comment3", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    210     $objFormParam->addParam("詳細-サブ画像(3)", "sub_image3", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    211     $objFormParam->addParam("詳細-サブ拡大画像(3)", "sub_large_image3", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    212          
    213     $objFormParam->addParam("詳細-サブタイトル(4)", "sub_title4", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    214     $objFormParam->addParam("詳細-サブコメント(4)", "sub_comment4", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    215     $objFormParam->addParam("詳細-サブ画像(4)", "sub_image4", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    216     $objFormParam->addParam("詳細-サブ拡大画像(4)", "sub_large_image4", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    217          
    218     $objFormParam->addParam("詳細-サブタイトル(5)", "sub_title5", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    219     $objFormParam->addParam("詳細-サブコメント(5)", "sub_comment5", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    220     $objFormParam->addParam("詳細-サブ画像(5)", "sub_image5", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    221     $objFormParam->addParam("詳細-サブ拡大画像(5)", "sub_large_image5", LTEXT_LEN, "KVa", array("FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    222      
    223     $objFormParam->addParam("発送日目安", "deliv_date_id", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    224      
    225     for ($cnt = 1; $cnt <= RECOMMEND_PRODUCT_MAX; $cnt++) { 
    226         $objFormParam->addParam("おすすめ商品($cnt)", "recommend_product_id$cnt", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    227         $objFormParam->addParam("詳細-サブコメント($cnt)", "recommend_comment$cnt", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    228     } 
    229      
    230     $objFormParam->addParam("商品カテゴリ", "category_id", STEXT_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    231 } 
    232  
    233 /*  
    234  * 関数名:lfRegistProduct 
    235  * 引数1 :SC_Queryオブジェクト 
    236  * 説明 :商品登録 
    237  */ 
    238 function lfRegistProduct($objQuery, $line = "") { 
    239     global $objFormParam; 
    240     $arrRet = $objFormParam->getHashArray(); 
    241      
    242     // dtb_products以外に登録される値を除外する。 
    243     foreach($arrRet as $key => $val) { 
    244         switch($key) { 
    245         case 'product_code': 
    246         case 'price01': 
    247         case 'price02': 
    248         case 'stock': 
    249         case 'product_class_id': 
    250         case 'recommend_product_id1': 
    251         case 'recommend_product_id2': 
    252         case 'recommend_product_id3': 
    253         case 'recommend_product_id4': 
    254         case 'recommend_product_id5': 
    255         case 'recommend_product_id6': 
    256         case 'recommend_comment1': 
    257         case 'recommend_comment2': 
    258         case 'recommend_comment3': 
    259         case 'recommend_comment4': 
    260         case 'recommend_comment5': 
    261         case 'recommend_comment6': 
    262             break; 
    263         default: 
    264             if(!ereg("^dummy", $key)) { 
    265                 $sqlval[$key] = $val; 
    266             } 
    267             break; 
    268         } 
    269     } 
    270     // 登録時間を生成(DBのnow()だとcommitした際、すべて同一の時間になってしまう) 
    271     $time = date("Y-m-d H:i:s"); 
    272     // 秒以下を生成 
    273     if($line != "") { 
    274         $microtime = sprintf("%06d", $line); 
    275         $time .= ".$microtime"; 
    276     }    
    277     $sqlval['update_date'] = $time; 
    278     $sqlval['creator_id'] = $_SESSION['member_id']; 
    279          
    280     if($sqlval['sale_limit'] == "") { 
    281         $sqlval['sale_unlimited'] = '1'; 
    282     } else { 
    283         $sqlval['sale_unlimited'] = '0';         
    284     } 
    285      
    286     if($sqlval['status'] == "") { 
    287         $sqlval['status'] = 2; 
    288     } 
    289  
    290     if($arrRet['product_id'] != "" && $arrRet['product_class_id'] != "") { 
    291         // カテゴリ内ランクの調整処理 
    292         $old_catid = $objQuery->get("dtb_products", "category_id", "product_id = ?", array($arrRet['product_id'])); 
    293         sfMoveCatRank($objQuery, "dtb_products", "product_id", "category_id", $old_catid, $arrRet['category_id'], $arrRet['product_id']); 
    294  
    295         // UPDATEの実行 
    296         $where = "product_id = ?"; 
    297         $objQuery->update("dtb_products", $sqlval, $where, array($sqlval['product_id'])); 
    298     } else { 
    299  
    300         // 新規登録 
    301         // postgresqlとmysqlとで処理を分ける 
    302         if (DB_TYPE == "pgsql") { 
    303             $product_id = $objQuery->nextval("dtb_products","product_id"); 
    304         }elseif (DB_TYPE == "mysql") { 
    305             $product_id = $objQuery->get_auto_increment("dtb_products"); 
    306         } 
    307         $sqlval['product_id'] = $product_id; 
    308         $sqlval['create_date'] = $time; 
    309          
    310         // カテゴリ内で最大のランクを割り当てる 
    311         $sqlval['rank'] = $objQuery->max("dtb_products", "rank", "category_id = ?", array($arrRet['category_id'])) + 1; 
    312          
    313         // INSERTの実行 
    314         $objQuery->insert("dtb_products", $sqlval); 
    315     } 
    316      
    317     // 規格登録 
    318     lfRegistProductClass($objQuery, $arrRet, $sqlval['product_id'], $arrRet['product_class_id']); 
    319      
    320     // おすすめ商品登録 
    321     $objQuery->delete("dtb_recommend_products", "product_id = ?", array($sqlval['product_id'])); 
    322     for($i = 1; $i <= RECOMMEND_PRODUCT_MAX; $i++) { 
    323         $keyname = "recommend_product_id" . $i; 
    324         $comment_key = "recommend_comment" . $i; 
    325         if($arrRet[$keyname] != "") { 
    326             $arrProduct = $objQuery->select("product_id", "dtb_products", "product_id = ?", array($arrRet[$keyname])); 
    327             if($arrProduct[0]['product_id'] != "") { 
    328                 $arrval['product_id'] = $sqlval['product_id']; 
    329                 $arrval['recommend_product_id'] = $arrProduct[0]['product_id']; 
    330                 $arrval['comment'] = $arrRet[$comment_key]; 
    331                 $arrval['update_date'] = "Now()"; 
    332                 $arrval['create_date'] = "Now()"; 
    333                 $arrval['creator_id'] = $_SESSION['member_id']; 
    334                 $arrval['rank'] = RECOMMEND_PRODUCT_MAX - $i + 1; 
    335                 $objQuery->insert("dtb_recommend_products", $arrval); 
    336             } 
    337         } 
    338     } 
    339 } 
    340  
    341 /*  
    342  * 関数名:lfRegistProductClass 
    343  * 引数1 :SC_Queryオブジェクト 
    344  * 引数2 :商品規格情報配列 
    345  * 引数3 :商品ID 
    346  * 引数4 :商品規格ID 
    347  * 説明 :商品規格登録 
    348  */ 
    349 function lfRegistProductClass($objQuery, $arrList, $product_id, $product_class_id) { 
    350     $sqlval['product_code'] = $arrList["product_code"]; 
    351     $sqlval['stock'] = $arrList["stock"]; 
    352     if($sqlval['stock'] == "") { 
    353         $sqlval['stock_unlimited'] = '1'; 
    354     } else { 
    355         $sqlval['stock_unlimited'] = '0';        
    356     } 
    357     $sqlval['price01'] = $arrList['price01']; 
    358     $sqlval['price02'] = $arrList['price02']; 
    359     $sqlval['creator_id'] = $_SESSION['member_id']; 
    360     if($sqlval['member_id'] == "") { 
    361         $sqlval['creator_id'] = '0'; 
    362     } 
    363          
    364     if($product_class_id == "") { 
    365         // 新規登録 
    366         $where = "product_id = ?"; 
    367         // 念のために既存の規格を削除 
    368         $objQuery->delete("dtb_products_class", $where, array($product_id)); 
    369         $sqlval['product_id'] = $product_id; 
    370         $sqlval['classcategory_id1'] = '0'; 
    371         $sqlval['classcategory_id2'] = '0'; 
    372         $sqlval['create_date'] = "now()"; 
    373         $objQuery->insert("dtb_products_class", $sqlval); 
    374     } else { 
    375         // 既存編集 
    376         $where = "product_id = ? AND product_class_id = ?"; 
    377         $objQuery->update("dtb_products_class", $sqlval, $where, array($product_id, $product_class_id));     
    378     } 
    379 } 
    380  
    381 /*  
    382  * 関数名:lfCheckError 
    383  * 説明 :入力チェック 
    384  */ 
    385 function lfCheckError() { 
    386     global $objFormParam; 
    387     // 入力データを渡す。 
    388     $arrRet =  $objFormParam->getHashArray(); 
    389     $objErr = new SC_CheckError($arrRet); 
    390     $objErr->arrErr = $objFormParam->checkError(false); 
    391      
    392     if(count($objErr->arrErr) == 0) { 
    393         $objQuery = new SC_Query(); 
    394         // 商品ID、規格IDの存在チェック 
    395         if($arrRet['product_id'] != "") { 
    396             $count = $objQuery->count("dtb_products", "product_id = ?", array($arrRet['product_id'])); 
    397             if($count == 0) { 
    398                 $objErr->arrErr['product_id'] = "※ 指定の商品IDは、登録されていません。"; 
    399             } 
    400         } 
    401                  
    402         if($arrRet['product_class_id'] != "") { 
    403             $count = 0; 
    404             if($arrRet['product_id'] != "") { 
    405                 $count = $objQuery->count("dtb_products_class", "product_id = ? AND product_class_id = ?", array($arrRet['product_id'], $arrRet['product_class_id'])); 
    406             } 
    407             if($count == 0) { 
    408                 $objErr->arrErr['product_class_id'] = "※ 指定の規格IDは、登録されていません。"; 
    409             } 
    410         } 
    411          
    412         // 存在するカテゴリIDかチェック 
    413         $count = $objQuery->count("dtb_category", "category_id = ?", array($arrRet['category_id'])); 
    414         if($count == 0) { 
    415             $objErr->arrErr['product_id'] = "※ 指定のカテゴリIDは、登録されていません。"; 
    416         } 
    417     } 
    418     return $objErr->arrErr; 
    419 } 
    420  
    421 /*  
    422  * 関数名:lfCSVRecordCount 
    423  * 説明 :CSVのカウント数を得る 
    424  * 引数1 :ファイルパス 
    425  */ 
    426 function lfCSVRecordCount($file_name) { 
    427      
    428     $count = 0; 
    429     $fp = fopen($file_name, "r"); 
    430     while(!feof($fp)) { 
    431         $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
    432         $count++; 
    433     } 
    434      
    435     return $count-1; 
    436 } 
     15$objPage = new LC_Page_Admin_Products_UploadCSV_Ex(); 
     16$objPage->init(); 
     17$objPage->process(); 
     18register_shutdown_function(array($objPage, "destroy")); 
    43719?> 
Note: See TracChangeset for help on using the changeset viewer.