Changeset 18477
- Timestamp:
- 2010/01/07 16:17:33 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_4-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php
r18409 r18477 108 108 // レコード数を得る 109 109 $rec_count = $this->lfCSVRecordCount($enc_filepath); 110 if ($rec_count === false) { 110 $fp = fopen($enc_filepath, "r"); 111 112 if ($rec_count === false || $fp === false) { 111 113 $err = false; 112 114 $arrErr['bad_file_pointer'] = "※ 不正なファイルポインタが検出されました"; 113 115 } 114 116 115 $fp = fopen($enc_filepath, "r");116 117 $line = 0; // 行数 117 118 $regist = 0; // 登録数 … … 121 122 122 123 echo "■ CSV登録進捗状況 <br/><br/>\n"; 123 124 while (!feof($fp) && !$err) { 125 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 126 127 // 行カウント 128 $line++; 129 130 if ($line <= 1) { 131 continue; 124 if ($fp !== false) { 125 while (!feof($fp) && !$err) { 126 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 127 128 // 行カウント 129 $line++; 130 131 if ($line <= 1) { 132 continue; 133 } 134 135 // 項目数カウント 136 $max = count($arrCSV); 137 138 // 項目数が1以下の場合は無視する 139 if ($max <= 1) { 140 continue; 141 } 142 143 // 項目数チェック 144 if ($max != $colmax) { 145 echo "※ 項目数が" . $max . "個検出されました。項目数は" . $colmax . "個になります。</br>\n"; 146 $err = true; 147 } else { 148 // シーケンス配列を格納する。 149 $this->objFormParam->setParam($arrCSV, true); 150 $arrRet = $this->objFormParam->getHashArray(); 151 $this->objFormParam->setParam($arrRet); 152 // 入力値の変換 153 $this->objFormParam->convParam(); 154 // <br>なしでエラー取得する。 155 $arrCSVErr = $this->lfCheckError(); 156 } 157 158 // 入力エラーチェック 159 if (count_chars(string[, int mode])($arrCSVErr) > 0) { 160 echo "<font color=\"red\">■" . $line . "行目でエラーが発生しました。</font></br>\n"; 161 foreach($arrCSVErr as $val) { 162 $this->printError($val); 163 } 164 $err = true; 165 } 166 167 if (!$err) { 168 $this->lfRegistProduct($objQuery, $rec_count, $line); 169 $regist++; 170 } 171 $arrParam = $this->objFormParam->getHashArray(); 172 173 if (!$err) echo $line." / ".$rec_count. "行目 (カテゴリID:".$arrParam['category_id']." / カテゴリ名:".$arrParam['category_name'].")\n<br />"; 174 flush(); 132 175 } 133 134 // 項目数カウント 135 $max = count($arrCSV); 136 137 // 項目数が1以下の場合は無視する 138 if ($max <= 1) { 139 continue; 140 } 141 142 // 項目数チェック 143 if ($max != $colmax) { 144 echo "※ 項目数が" . $max . "個検出されました。項目数は" . $colmax . "個になります。</br>\n"; 145 $err = true; 146 } else { 147 // シーケンス配列を格納する。 148 $this->objFormParam->setParam($arrCSV, true); 149 $arrRet = $this->objFormParam->getHashArray(); 150 $this->objFormParam->setParam($arrRet); 151 // 入力値の変換 152 $this->objFormParam->convParam(); 153 // <br>なしでエラー取得する。 154 $arrCSVErr = $this->lfCheckError(); 155 } 156 157 // 入力エラーチェック 158 if (count($arrCSVErr) > 0) { 159 echo "<font color=\"red\">■" . $line . "行目でエラーが発生しました。</font></br>\n"; 160 foreach($arrCSVErr as $val) { 161 $this->printError($val); 162 } 163 $err = true; 164 } 165 166 if (!$err) { 167 $this->lfRegistProduct($objQuery, $rec_count, $line); 168 $regist++; 169 } 170 $arrParam = $this->objFormParam->getHashArray(); 171 172 if (!$err) echo $line." / ".$rec_count. "行目 (カテゴリID:".$arrParam['category_id']." / カテゴリ名:".$arrParam['category_name'].")\n<br />"; 173 flush(); 176 fclose($fp); 174 177 } 175 fclose($fp);176 178 177 179 if (!$err) { … … 192 194 exit; 193 195 break; 194 195 196 default: 197 break; 196 198 } 197 199
Note: See TracChangeset
for help on using the changeset viewer.