Changeset 18501 for branches/version-2_4-dev
- Timestamp:
- 2010/01/22 11:59:55 (14 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_4-dev:18500
- bzr:committer:
- Kentaro Ohkouchi <Kentaro_Ohkouchi@lockon.co.jp>
- bzr:file-ids:
data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php 15472@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_UploadCSV.php
data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php 17047@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_UploadCSVCategory.php- bzr:mapping-version:
- v4
- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- kentaro_ohkouchi@lockon.co.jp-20100122025953-sc9ark00ws992l3f
- bzr:revno:
- 1910
- bzr:revprop:branch-nick:
- branches/version-2_4-dev
- bzr:root:
- branches/version-2_4-dev
- bzr:text-parents:
data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_4:17941
data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_4-dev:18477- bzr:timestamp:
- 2010-01-22 11:59:53.355999947 +0900
- bzr:user-agent:
- bzr2.0.1+bzr-svn1.0.1
- svn:original-date:
- 2010-01-22T02:59:53.356000Z
- Location:
- branches/version-2_4-dev
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_4-dev
- Property bzr:see-revprops set to 18501
-
branches/version-2_4-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php
r17941 r18501 109 109 $enc_filepath = SC_Utils_Ex::sfEncodeFile($filepath, 110 110 CHAR_CODE, CSV_TEMP_DIR); 111 $fp = fopen($enc_filepath, "r"); 112 113 // 無効なファイルポインタが渡された場合はエラー表示 114 if ($fp === false) { 115 SC_Utils_Ex::sfDispError(""); 116 } 111 117 112 118 // レコード数を得る 113 $rec_count = $this->lfCSVRecordCount($enc_filepath); 114 115 $fp = fopen($enc_filepath, "r"); 119 $rec_count = $this->lfCSVRecordCount($fp); 120 116 121 $line = 0; // 行数 117 122 $regist = 0; // 登録数 … … 490 495 * CSVのカウント数を得る. 491 496 * 492 * @param string $file_name ファイルパス497 * @param resource $fp fopenを使用して作成したファイルポインタ 493 498 * @return integer CSV のカウント数 494 499 */ 495 function lfCSVRecordCount($f ile_name) {500 function lfCSVRecordCount($fp) { 496 501 497 502 $count = 0; 498 $fp = fopen($file_name, "r");499 503 while(!feof($fp)) { 500 504 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 501 505 $count++; 502 506 } 503 504 return $count-1; 507 // ファイルポインタを戻す 508 if (rewind($fp)) { 509 return $count-1; 510 } else { 511 SC_Utils_Ex::sfDispError(""); 512 } 505 513 } 506 514 -
branches/version-2_4-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php
r18477 r18501 106 106 CHAR_CODE, CSV_TEMP_DIR); 107 107 108 $fp = fopen($enc_filepath, "r"); 109 110 // 無効なファイルポインタが渡された場合はエラー表示 111 if ($fp === false) { 112 SC_Utils_Ex::sfDispError(""); 113 } 114 108 115 // レコード数を得る 109 $rec_count = $this->lfCSVRecordCount($enc_filepath); 110 $fp = fopen($enc_filepath, "r"); 111 112 if ($rec_count === false || $fp === false) { 113 $err = false; 114 $arrErr['bad_file_pointer'] = "※ 不正なファイルポインタが検出されました"; 115 } 116 $rec_count = $this->lfCSVRecordCount($fp); 116 117 117 118 $line = 0; // 行数 … … 122 123 123 124 echo "■ CSV登録進捗状況 <br/><br/>\n"; 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; 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($arrCSVErr) > 0) { 160 echo "<font color=\"red\">■" . $line . "行目でエラーが発生しました。</font></br>\n"; 161 foreach($arrCSVErr as $val) { 162 $this->printError($val); 133 163 } 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(); 175 } 176 fclose($fp); 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(); 177 175 } 176 fclose($fp); 178 177 179 178 if (!$err) { … … 344 343 * CSVのカウント数を得る. 345 344 * 346 * @param string $file_name ファイルパス347 * @return mixed CSV のカウント数; $file_name が無効な場合は false348 */ 349 function lfCSVRecordCount($f ile_name) {345 * @param resource $fp fopenを使用して作成したファイルポインタ 346 * @return integer CSV のカウント数 347 */ 348 function lfCSVRecordCount($fp) { 350 349 $count = 0; 351 $fp = fopen($file_name, "r");352 if ($fp !== false) {353 while(!feof($fp)) {354 $arrCSV = fgetcsv($fp, CSV_LINE_MAX);355 $count++;356 }357 } else {358 return false;359 }360 return $count-1;350 while(!feof($fp)) { 351 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 352 $count++; 353 } 354 // ファイルポインタを戻す 355 if (rewind($fp)) { 356 return $count-1; 357 } else { 358 SC_Utils_Ex::sfDispError(""); 359 } 361 360 } 362 361
Note: See TracChangeset
for help on using the changeset viewer.