本文整理汇总了PHP中Eccube\Framework\Util\Utils::sfEncodeFile方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::sfEncodeFile方法的具体用法?PHP Utils::sfEncodeFile怎么用?PHP Utils::sfEncodeFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Framework\Util\Utils
的用法示例。
在下文中一共展示了Utils::sfEncodeFile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doUploadCsv
/**
* CSVアップロードを実行します.
*
* @return void
*/
public function doUploadCsv(&$objFormParam, &$objUpFile)
{
// ファイルアップロードのチェック
$this->arrErr['csv_file'] = $objUpFile->makeTempFile('csv_file');
if (strlen($this->arrErr['csv_file']) >= 1) {
return;
}
$arrErr = $objUpFile->checkExists();
if (count($arrErr) > 0) {
$this->arrErr = $arrErr;
return;
}
// 一時ファイル名の取得
$filepath = $objUpFile->getTempFilePath('csv_file');
// CSVファイルの文字コード変換
$enc_filepath = Utils::sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_REALDIR);
// CSVファイルのオープン
$fp = fopen($enc_filepath, 'r');
// 失敗した場合はエラー表示
if (!$fp) {
Utils::sfDispError('');
}
// 登録先テーブル カラム情報の初期化
$this->lfInitTableInfo();
// 登録フォーム カラム情報
$this->arrFormKeyList = $objFormParam->getKeyList();
$objQuery = Application::alias('eccube.query');
$objQuery->begin();
// CSVからの読み込み、入力エラーチェック
$errFlag = $this->lfReadCSVFile($objFormParam, $fp);
if (!$errFlag) {
rewind($fp);
// CSVからの読み込み、保存
$errFlag = $this->lfReadCSVFile($objFormParam, $fp, $objQuery);
}
// 実行結果画面を表示
$this->tpl_mainpage = 'products/upload_csv_complete.tpl';
fclose($fp);
if ($errFlag) {
$objQuery->rollback();
return;
}
$objQuery->commit();
// 商品件数カウント関数の実行
$this->objDb->countCategory($objQuery);
$this->objDb->countMaker($objQuery);
}
示例2: doUploadCsv
/**
* CSVアップロードを実行する
*
* @param FormParam $objFormParam
* @param UploadFile $objUpFile
* @return void
*/
public function doUploadCsv(&$objFormParam, &$objUpFile)
{
// ファイルアップロードのチェック
$objUpFile->makeTempFile('csv_file');
$arrErr = $objUpFile->checkExists();
if (count($arrErr) > 0) {
$this->arrErr = $arrErr;
return;
}
// 一時ファイル名の取得
$filepath = $objUpFile->getTempFilePath('csv_file');
// CSVファイルの文字コード変換
$enc_filepath = Utils::sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_REALDIR);
// CSVファイルのオープン
$fp = fopen($enc_filepath, 'r');
// 失敗した場合はエラー表示
if (!$fp) {
Utils::sfDispError('');
}
// 登録先テーブル カラム情報の初期化
$this->lfInitTableInfo();
// 登録フォーム カラム情報
$this->arrFormKeyList = $objFormParam->getKeyList();
// 登録対象の列数
$col_max_count = $objFormParam->getCount();
// 行数
$line_count = 0;
$objQuery = Application::alias('eccube.query');
$objQuery->begin();
$errFlag = false;
while (!feof($fp)) {
$arrCSV = fgetcsv($fp, CSV_LINE_MAX);
// 行カウント
$line_count++;
// ヘッダ行はスキップ
if ($line_count == 1) {
continue;
}
// 空行はスキップ
if (empty($arrCSV)) {
continue;
}
// 列数が異なる場合はエラー
$col_count = count($arrCSV);
if ($col_max_count != $col_count) {
$this->addRowErr($line_count, '※ 項目数が' . $col_count . '個検出されました。項目数は' . $col_max_count . '個になります。');
$errFlag = true;
break;
}
// シーケンス配列を格納する。
$objFormParam->setParam($arrCSV, true);
// 入力値の変換
$objFormParam->convParam();
// <br>なしでエラー取得する。
$arrCSVErr = $this->lfCheckError($objFormParam);
// 入力エラーチェック
if (count($arrCSVErr) > 0) {
foreach ($arrCSVErr as $err) {
$this->addRowErr($line_count, $err);
}
$errFlag = true;
break;
}
$category_id = $this->lfRegisterCategory($line_count, $objFormParam);
$this->addRowResult($line_count, 'カテゴリID:' . $category_id . ' / カテゴリ名:' . $objFormParam->getValue('category_name'));
}
// 実行結果画面を表示
$this->tpl_mainpage = 'products/upload_csv_category_complete.tpl';
fclose($fp);
if ($errFlag) {
$objQuery->rollback();
return;
}
$objQuery->commit();
// カテゴリ件数を更新
/* @var $objDb DbHelper */
$objDb = Application::alias('eccube.helper.db');
$objDb->countCategory($objQuery);
return;
}