本文整理汇总了PHP中SC_Utils_Ex::extendTimeOut方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils_Ex::extendTimeOut方法的具体用法?PHP SC_Utils_Ex::extendTimeOut怎么用?PHP SC_Utils_Ex::extendTimeOut使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils_Ex
的用法示例。
在下文中一共展示了SC_Utils_Ex::extendTimeOut方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: insertMtbZip
/**
* DB登録
*
* @return void
*/
function insertMtbZip($start = 1)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$img_path = USER_URL . USER_PACKAGE_DIR . 'admin/img/basis/';
// 画像パスは admin 固定
?>
<html xmlns='http://www.w3.org/1999/xhtml' lang='ja' xml:lang='ja'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=<?php
echo CHAR_CODE;
?>
' />
</head>
<body>
<p>DB 登録進捗状況</p>
<div style='background-color: #494E5F;'>
<?php
// 一部のIEは256バイト以上受け取ってから表示を開始する。
SC_Utils_Ex::sfFlush(true);
echo '<img src="' . $img_path . 'zip_install_progress.gif"><br />';
echo '<img src="' . $img_path . 'space_w.gif">';
SC_Utils_Ex::sfFlush();
// 画像を一個表示する件数を求める。
$line_all = $this->countZipCsv();
$disp_line = intval($line_all / IMAGE_MAX);
/** 現在行(CSV形式。空行は除く。) */
$cntCurrentLine = 0;
/** 挿入した行数 */
$cntInsert = 0;
$img_cnt = 0;
$fp = $this->openZipCsv();
while (!feof($fp)) {
$arrCSV = fgetcsv($fp, ZIP_CSV_LINE_MAX);
if (empty($arrCSV)) {
continue;
}
$cntCurrentLine++;
if ($cntCurrentLine >= $start) {
$sqlval = array();
$sqlval['zip_id'] = $cntCurrentLine;
$sqlval['zipcode'] = $arrCSV[2];
$sqlval['state'] = $arrCSV[6];
$sqlval['city'] = $arrCSV[7];
$sqlval['town'] = $arrCSV[8];
$objQuery->insert('mtb_zip', $sqlval);
$cntInsert++;
}
// $disp_line件ごとに進捗表示する
if ($cntCurrentLine % $disp_line == 0 && $img_cnt < IMAGE_MAX) {
echo '<img src="' . $img_path . 'graph_1_w.gif">';
SC_Utils_Ex::sfFlush();
$img_cnt++;
}
SC_Utils_Ex::extendTimeOut();
}
fclose($fp);
echo '<img src="' . $img_path . 'space_w.gif">';
?>
</div>
<script type='text/javascript' language='javascript'>
<!--
// 完了画面
function complete() {
document.open('text/html','replace');
document.clear();
document.write('<p>完了しました。<br />');
document.write("<?php
echo $cntInsert;
?>
件を追加しました。</p>");
document.write("<p><a href='?' target='_top'>戻る</a></p>");
document.close();
}
// コンテンツを削除するため、タイムアウトで呼び出し。
setTimeout('complete()', 0);
// -->
</script>
</body>
</html>
<?php
}
示例2: lfDownload
/**
* モバイル端末以外ダウンロード処理
*
* @param string $realpath ダウンロードファイルパス
* @param string $sdown_filename ダウンロード時の指定ファイル名
*/
function lfDownload($realpath, $sdown_filename)
{
// 拡張子を取得
$extension = pathinfo($realpath, PATHINFO_EXTENSION);
$contentType = $this->defaultContentType;
// 拡張ContentType判定(拡張子をキーに拡張ContentType対象か判断)
if (isset($this->arrContentType[$extension])) {
// 拡張ContentType対象の場合は、ContentTypeを変更
$contentType = $this->arrContentType[$extension];
}
header('Content-Type: ' . $contentType);
//ファイル名指定
header('Content-Disposition: attachment; filename="' . $sdown_filename . '"');
header('Content-Transfer-Encoding: binary');
//キャッシュ無効化
header('Expires: Mon, 26 Nov 1962 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D,d M Y H:i:s') . ' GMT');
//IE6+SSL環境下は、キャッシュ無しでダウンロードできない
header('Cache-Control: private');
header('Pragma: private');
//ファイルサイズ指定
$zv_filesize = filesize($realpath);
header('Content-Length: ' . $zv_filesize);
//ファイル読み込み
$handle = fopen($realpath, 'rb');
if ($handle === false) {
SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND, '', true);
SC_Response_Ex::actionExit();
}
while (!feof($handle)) {
echo fread($handle, DOWNLOAD_BLOCK * 1024);
SC_Utils_Ex::sfFlush();
SC_Utils_Ex::extendTimeOut();
}
fclose($handle);
}
示例3: makeTempDownFile
function makeTempDownFile($keyname = 'down_file')
{
$objErr = new SC_CheckError_Ex();
$cnt = 0;
$arrKeyname = array_flip($this->keyname);
if (!($_FILES[$keyname]['size'] > 0)) {
$objErr->arrErr[$keyname] = '※ ' . $this->disp_name[$arrKeyname[$keyname]] . 'がアップロードされていません。(ファイルがアップロードできない場合は、.htaccessファイルのphp_value upload_max_filesizeを調整してください)<br />';
} else {
foreach ($this->keyname as $val) {
// 一致したキーのファイルに情報を保存する。
if ($val == $keyname) {
// 拡張子チェック
$objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->arrExt[$cnt]), array('FILE_EXT_CHECK'));
// ファイルサイズチェック
$objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->size[$cnt]), array('FILE_SIZE_CHECK'));
// エラーがない場合
if (!isset($objErr->arrErr[$keyname])) {
// 一意なファイル名を作成する。
$uniqname = date('mdHi') . '_' . uniqid('') . '.';
$this->temp_file[$cnt] = preg_replace("/^.*\\./", $uniqname, $_FILES[$keyname]['name']);
$result = copy($_FILES[$keyname]['tmp_name'], $this->temp_dir . $this->temp_file[$cnt]);
GC_Utils_Ex::gfPrintLog($result . ' -> ' . $this->temp_dir . $this->temp_file[$cnt]);
SC_Utils_Ex::extendTimeOut();
}
}
$cnt++;
}
}
return $objErr->arrErr[$keyname];
}
示例4: lfExeInsertSQL
/**
* CSVファイルからインサート実行.
*
* @param object $objQuery
* @param string $dir
* @param string $mode
* @return void
*/
function lfExeInsertSQL(&$objQuery, $dir, $mode)
{
$tbl_flg = false;
$col_flg = false;
$ret = true;
$pagelayout_flg = false;
$arrVal = array();
$arrCol = array();
$arrAllTableList = $objQuery->listTables();
$objDir = dir($dir);
while (false !== ($file_name = $objDir->read())) {
if (!preg_match('/^((dtb|mtb|plg)_(\\w+))\\.csv$/', $file_name, $matches)) {
continue;
}
$file_path = $dir . $file_name;
$table = $matches[1];
// テーブル存在チェック
if (!in_array($table, $arrAllTableList)) {
if ($mode === 'restore_config') {
continue;
}
return false;
}
// csvファイルからデータの取得
$fp = fopen($file_path, 'r');
if ($fp === false) {
trigger_error($file_name . ' のファイルオープンに失敗しました。', E_USER_ERROR);
}
GC_Utils_Ex::gfPrintLog('リストア実行: ' . $table);
$objQuery->delete($table);
$line = 0;
$arrColName = array();
while (!feof($fp)) {
$line++;
$arrCsvLine = fgetcsv($fp, 1024 * 1024);
// 1行目: 列名
if ($line === 1) {
$arrColName = $arrCsvLine;
continue;
}
// 空行を無視
// false との比較は PHP 5.2.x Windows バグ対応
// 参考: http://www.php.net/manual/ja/function.fgetcsv.php#98502
if ($arrCsvLine === array(null) || $arrCsvLine === false) {
continue;
}
$arrVal = array_combine($arrColName, $arrCsvLine);
$objQuery->insert($table, $arrVal);
SC_Utils_Ex::extendTimeOut();
}
fclose($fp);
}
return $ret;
}
示例5: cbOutputCSV
/**
* CSV作成 テンポラリファイル出力 コールバック関数
*
* @param mixed $data 出力データ
* @return boolean true (true:固定 false:中断)
*/
function cbOutputCSV($data)
{
$line = $this->sfArrayToCSV($data);
$line = mb_convert_encoding($line, 'SJIS-Win');
$line .= "\r\n";
fwrite($this->fpOutput, $line);
SC_Utils_Ex::extendTimeOut();
return true;
}
示例6: updateProductCategories
/**
* 商品カテゴリを更新する.
*
* @param array $arrCategory_id 登録するカテゴリIDの配列
* @param integer $product_id プロダクトID
* @return void
*/
public function updateProductCategories($arrCategory_id, $product_id)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
// 現在のカテゴリ情報を取得
$arrCurrentCat = $objQuery->getCol('category_id', 'dtb_product_categories', 'product_id = ?', array($product_id));
// 登録するカテゴリ情報と比較
foreach ($arrCurrentCat as $category_id) {
// 登録しないカテゴリを削除
if (!in_array($category_id, $arrCategory_id)) {
$this->removeProductByCategories($category_id, $product_id);
}
}
// カテゴリを登録
foreach ($arrCategory_id as $category_id) {
$this->addProductBeforCategories($category_id, $product_id);
SC_Utils_Ex::extendTimeOut();
}
}
示例7: cbOutputCSV
/**
* CSV作成 テンポラリファイル出力 コールバック関数
*
* @param mixed $data 出力データ
* @return boolean true (true:固定 false:中断)
*/
public function cbOutputCSV($data)
{
// 1行目のみヘッダーを出力する
if ($this->output_header) {
fputcsv($this->fpOutput, array_keys($data));
$this->output_header = false;
}
fputcsv($this->fpOutput, $data);
SC_Utils_Ex::extendTimeOut();
return true;
}
示例8: lfReadCSVFile
/**
* CSVファイルを読み込んで、保存処理を行う
*
* @param
* $objFormParam
* @param $fp CSVファイルポインタ
* @param $objQuery 保存を行うためのクエリ(指定がない場合、テストのみを行う)
* @return boolean errFlag. 読み込みに失敗した場合true
*/
public function lfReadCSVFile(&$objFormParam, &$fp, $objQuery = null)
{
$dry_run = $objQuery === null ? true : false;
// 登録対象の列数
$col_max_count = $objFormParam->getCount();
// 行数
$line_count = 0;
// 処理に失敗した場合にtrue
$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_count > $col_max_count) {
$this->addRowErr($line_count, '※ 項目数が' . $col_count . '個検出されました。項目数は' . $col_max_count . '個になります。');
$errFlag = true;
break;
} elseif ($col_count < $col_max_count) {
$arrCSV = array_pad($arrCSV, $col_max_count, "");
if (!$dry_run) {
$this->addRowResult($line_count, $col_count + 1 . "項目以降を空欄として読み込みました");
}
}
// シーケンス配列を格納する。
$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;
}
if (!$dry_run) {
$this->lfRegistProduct($objQuery, $line_count, $objFormParam);
$arrParam = $objFormParam->getHashArray();
$this->addRowResult($line_count, $this->dips_name . 'ID:' . $arrParam[$this->id_column] . ' / ' . $this->dips_name . '名:' . $arrParam[$this->name_column]);
}
SC_Utils_Ex::extendTimeOut();
}
return $errFlag;
}
示例9: lfReadCSVFile
/**
* CSVファイルを読み込んで、保存処理を行う
*
* @param $objFormParam
* @param $fp CSVファイルポインタ
* @param $objQuery 保存を行うためのクエリ(指定がない場合、テストのみを行う)
* @return boolean errFlag. 読み込みに失敗した場合true
*/
public function lfReadCSVFile(&$objFormParam, &$fp, $objQuery = null)
{
$dry_run = $objQuery === null ? true : false;
// 登録対象の列数
$col_max_count = $objFormParam->getCount();
// 行数
$line_count = 0;
// 処理に失敗した場合にtrue
$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_count > $col_max_count) {
$this->addRowErr($line_count, '※ 項目数が' . $col_count . '個検出されました。項目数は' . $col_max_count . '個になります。');
$errFlag = true;
break;
} elseif ($col_count < $col_max_count) {
$arrCSV = array_pad($arrCSV, $col_max_count, "");
if (!$dry_run) {
$this->addRowResult($line_count, $col_count + 1 . "項目以降を空欄として読み込みました");
}
}
// シーケンス配列を格納する。
$objFormParam->setParam($arrCSV, true);
// 入力値の変換
$objFormParam->convParam();
// 商品IDが設定されており、規格IDが設定されていなければ、既存の規格ID取得を試みる(product_class_idは必須入力項目ではない)
$product_id = $objFormParam->getValue('product_id');
$product_class_id = $objFormParam->getValue('product_class_id');
if ($product_class_id == '' && $product_id != '') {
$product_class_id = SC_Utils_Ex::sfGetProductClassId($product_id, $objFormParam->getValue('classcategory_id1'), $objFormParam->getValue('classcategory_id2'));
$objFormParam->setValue('product_class_id', $product_class_id);
}
// <br>なしでエラー取得する。
$arrCSVErr = $this->lfCheckError($objFormParam);
if (count($arrCSVErr) > 0) {
foreach ($arrCSVErr as $err) {
$this->addRowErr($line_count, $err);
}
$errFlag = true;
break;
}
if (!$dry_run) {
$this->lfRegistProduct($objQuery, $line_count, $objFormParam);
$arrParam = $objFormParam->getHashArray();
$this->addRowResult($line_count, '商品ID:' . $arrParam['product_id'] . ' / 商品名:' . $arrParam['name']);
}
SC_Utils_Ex::extendTimeOut();
}
return $errFlag;
}
示例10: doUploadCsv
/**
* CSVアップロードを実行します.
*
* @return void
*/
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 = SC_Utils_Ex::sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_REALDIR);
// CSVファイルのオープン
$fp = fopen($enc_filepath, 'r');
// 失敗した場合はエラー表示
if (!$fp) {
SC_Utils_Ex::sfDispError('');
}
// 登録先テーブル カラム情報の初期化
$this->lfInitTableInfo();
// 登録フォーム カラム情報
$this->arrFormKeyList = $objFormParam->getKeyList();
// 登録対象の列数
$col_max_count = $objFormParam->getCount();
// 行数
$line_count = 0;
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->begin();
$errFlag = false;
$all_line_checked = false;
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;
}
// 行カウント
$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);
$arrRet = $objFormParam->getHashArray();
$objFormParam->setParam($arrRet);
// 入力値の変換
$objFormParam->convParam();
// <br>なしでエラー取得する。
$arrCSVErr = $this->lfCheckError($objFormParam);
// 入力エラーチェック
if (count($arrCSVErr) > 0) {
foreach ($arrCSVErr as $err) {
$this->addRowErr($line_count, $err);
}
$errFlag = true;
break;
}
if ($all_line_checked) {
$this->lfRegistProduct($objQuery, $line_count, $objFormParam);
$arrParam = $objFormParam->getHashArray();
$this->addRowResult($line_count, '商品ID:' . $arrParam['product_id'] . ' / 商品名:' . $arrParam['name']);
}
SC_Utils_Ex::extendTimeOut();
}
// 実行結果画面を表示
$this->tpl_mainpage = 'products/upload_csv_complete.tpl';
fclose($fp);
if ($errFlag) {
$objQuery->rollback();
return;
}
$objQuery->commit();
// 商品件数カウント関数の実行
$this->objDb->sfCountCategory($objQuery);
$this->objDb->sfCountMaker($objQuery);
}
开发者ID:nanasess,项目名称:eccube-WindowsAzureBlob-plugin,代码行数:100,代码来源:LC_Page_Admin_Products_UploadCSV.php
示例11: makeTempDownFile
public function makeTempDownFile($keyname = 'down_file')
{
$objErr = new SC_CheckError_Ex();
$cnt = 0;
$check = $this->checkUploadError($keyname, $objErr);
if ($check) {
foreach ($this->keyname as $val) {
// 一致したキーのファイルに情報を保存する。
if ($val == $keyname) {
// 拡張子チェック
$objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->arrExt[$cnt]), array('FILE_EXT_CHECK'));
// ファイルサイズチェック
$objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->size[$cnt]), array('FILE_SIZE_CHECK'));
// エラーがない場合
if (!isset($objErr->arrErr[$keyname])) {
// 一意なファイル名を作成する。
$uniqname = date('mdHi') . '_' . uniqid('') . '.';
$this->temp_file[$cnt] = preg_replace("/^.*\\./", $uniqname, $_FILES[$keyname]['name']);
$result = copy($_FILES[$keyname]['tmp_name'], $this->temp_dir . $this->temp_file[$cnt]);
GC_Utils_Ex::gfPrintLog($result . ' -> ' . $this->temp_dir . $this->temp_file[$cnt]);
SC_Utils_Ex::extendTimeOut();
}
}
$cnt++;
}
}
return $objErr->arrErr[$keyname];
}