本文整理汇总了PHP中SC_Utils_Ex::sfFlush方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils_Ex::sfFlush方法的具体用法?PHP SC_Utils_Ex::sfFlush怎么用?PHP SC_Utils_Ex::sfFlush使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils_Ex
的用法示例。
在下文中一共展示了SC_Utils_Ex::sfFlush方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: lfCreateBkupData
/**
* バックアップファイル作成.
*
* @param string $bkup_name
* @return boolean|int 結果。true:成功 int:失敗 FIXME 本来は int ではなく、エラーメッセージを戻すべき
*/
function lfCreateBkupData($bkup_name, $work_dir)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$csv_autoinc = '';
$arrData = array();
$success = mkdir($work_dir, 0777, true);
if (!$success) {
return __LINE__;
}
// 全テーブル取得
$arrTableList = $objQuery->listTables();
// 各テーブル情報を取得する
foreach ($arrTableList as $table) {
if ($table == 'dtb_bkup' || $table == 'mtb_zip') {
continue;
}
// dataをCSV出力
$csv_file = $work_dir . $table . '.csv';
$fp = fopen($csv_file, 'w');
if (!$fp) {
return __LINE__;
}
// 全データを取得
$sql = "SELECT * FROM {$table}";
$this->fpOutput =& $fp;
$this->first_line = true;
$success = $objQuery->doCallbackAll(array(&$this, 'cbOutputCSV'), $sql);
unset($this->fpOutput);
if ($success === false) {
return __LINE__;
}
fclose($fp);
// タイムアウトを防ぐ
SC_Utils_Ex::sfFlush();
}
// 自動採番型の構成を取得する
$csv_autoinc = $this->lfGetAutoIncrement();
$csv_autoinc_file = $work_dir . 'autoinc_data.csv';
// CSV出力
// 自動採番をCSV出力
$fp = fopen($csv_autoinc_file, 'w');
if ($fp) {
if ($csv_autoinc != '') {
$success = fwrite($fp, $csv_autoinc);
if (!$success) {
return __LINE__;
}
}
fclose($fp);
}
//圧縮フラグTRUEはgzip圧縮をおこなう
$tar = new Archive_Tar($this->bkup_dir . $bkup_name . $this->bkup_ext, TRUE);
//bkupフォルダに移動する
chdir($work_dir);
//圧縮をおこなう
$zip = $tar->create('./');
return true;
}
示例4: lfStartDailyTotal
function lfStartDailyTotal($term, $start, $command = false)
{
$now_time = time();
// グラフ画像の削除
$path = GRAPH_DIR . "*.png";
system("rm -rf {$path}");
// 削除された受注データの受注詳細情報の削除
$objQuery = new SC_Query();
$where = "order_id IN (SELECT order_id FROM dtb_order WHERE del_flg = 1)";
$objQuery->delete("dtb_order_detail", $where);
// 最後に更新された日付を取得
$ret = $objQuery->max("dtb_bat_order_daily", "create_date");
list($batch_last) = split("\\.", $ret);
$pass = $now_time - strtotime($batch_last);
// 最後のバッチ実行からLOAD_BATCH_PASS秒経過していないと実行しない。
if ($pass < LOAD_BATCH_PASS) {
GC_Utils_Ex::gfPrintLog("LAST BATCH " . $arrRet[0]['create_date'] . " > " . $batch_pass . " -> EXIT BATCH {$batch_date}");
return;
}
// 集計
for ($i = $start; $i < $term; $i++) {
// 基本時間から$i日分さかのぼる
$tmp_time = $now_time - $i * 24 * 3600;
$batch_date = date("Y/m/d", $tmp_time);
GC_Utils_Ex::gfPrintLog("LOADING BATCH {$batch_date}");
$this->lfBatOrderDaily($tmp_time);
$this->lfBatOrderDailyHour($tmp_time);
$this->lfBatOrderAge($tmp_time);
// タイムアウトを防ぐ
SC_Utils_Ex::sfFlush();
}
}
示例5: lfExeInsertSQL
/**
* CSVファイルからインサート実行.
*
* @param object $objQuery
* @param string $csv
* @param string $mode
* @return void
*/
function lfExeInsertSQL(&$objQuery, $csv, $mode)
{
$tbl_flg = false;
$col_flg = false;
$ret = true;
$pagelayout_flg = false;
$table_name = "";
$arrVal = array();
$arrCol = array();
// csvファイルからデータの取得
$fp = fopen($csv, 'r');
if ($fp === false) {
SC_Utils_Ex::sfDispException($csv . ' のファイルオープンに失敗しました。');
}
while (!feof($fp)) {
$data = fgetcsv($fp, 1000000);
//空白行のときはテーブル変更
if (count($data) <= 1 and $data[0] == "") {
$tbl_flg = false;
$col_flg = false;
$table_name = "";
$arrVal = array();
$arrCol = array();
continue;
}
// テーブルフラグがたっていない場合にはテーブル名セット
if (!$tbl_flg) {
$table_name = $data[0];
$tbl_flg = true;
if ($table_name == "dtb_pagelayout") {
$pagelayout_flg = true;
}
continue;
}
// カラムフラグがたっていない場合にはカラムセット
if (!$col_flg) {
if ($mode != "restore_config") {
for ($i = 0; $i < count($data); $i++) {
$arrCol[$i] = $data[$i];
}
}
$col_flg = true;
continue;
}
for ($i = 0; $i < count($data); $i++) {
if ($arrCol[$i] != '') {
$arrVal[$arrCol[$i]] = $data[$i];
}
}
$err = $objQuery->insert($table_name, $arrVal);
// エラーがあれば終了
if (PEAR::isError($err)) {
SC_Utils_Ex::sfErrorHeader(">> " . $objQuery->getlastquery(false));
return false;
}
if ($pagelayout_flg) {
// dtb_pagelayoutの場合には最初のデータはpage_id = 0にする
$arrVal['page_id'] = '0';
$objQuery->update("dtb_pagelayout", $arrVal);
$pagelayout_flg = false;
}
// タイムアウトを防ぐ
SC_Utils_Ex::sfFlush();
}
fclose($fp);
return $ret;
}
示例6: 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;
$safe_mode = (bool) ini_get('safe_mode');
$max_execution_time = is_numeric(ini_get('max_execution_time')) ? intval(ini_get('max_execution_time')) : intval(get_cfg_var('max_execution_time'));
$fp = $this->openZipCsv();
while (!feof($fp)) {
$arrCSV = fgetcsv($fp, ZIP_CSV_LINE_MAX);
if (empty($arrCSV)) {
continue;
}
$cntCurrentLine++;
if ($cntCurrentLine >= $start) {
$sqlval = array();
// $sqlval['code'] = $arrCSV[0];
// $sqlval['old_zipcode'] = $arrCSV[1];
$sqlval['id'] = $cntCurrentLine;
$sqlval['zipcode'] = $arrCSV[2];
// $sqlval['state_kana'] = $arrCSV[3];
// $sqlval['city_kana'] = $arrCSV[4];
// $sqlval['town_kana'] = $arrCSV[5];
$sqlval['state'] = $arrCSV[6];
$sqlval['city'] = $arrCSV[7];
$sqlval['town'] = $arrCSV[8];
// $sqlval['flg1'] = $arrCSV[9];
// $sqlval['flg2'] = $arrCSV[10];
// $sqlval['flg3'] = $arrCSV[11];
// $sqlval['flg4'] = $arrCSV[12];
// $sqlval['flg5'] = $arrCSV[13];
// $sqlval['flg6'] = $arrCSV[14];
$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++;
}
// 暴走スレッドが残留する確率を軽減したタイムアウト防止のロジック
// TODO 動作が安定していれば、SC_Utils 辺りに移動したい。
if (!$safe_mode) {
// タイムアウトをリセット
set_time_limit($max_execution_time);
}
}
fclose($fp);
echo '<img src="' . $img_path . 'space_w.gif">';
echo '</div>' . "\n";
?>
<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>
//.........这里部分代码省略.........
示例7: lfExeInsertSQL
function lfExeInsertSQL($objQuery, $csv)
{
$sql = "";
$base_sql = "";
$tbl_flg = false;
$col_flg = false;
$ret = true;
$pagelayout_flg = false;
$mode = $this->mode;
// csvファイルからデータの取得
$fp = fopen($csv, "r");
while (!feof($fp)) {
$data = fgetcsv($fp, 1000000);
//空白行のときはテーブル変更
if (count($data) <= 1 and $data[0] == "") {
$base_sql = "";
$tbl_flg = false;
$col_flg = false;
continue;
}
// テーブルフラグがたっていない場合にはテーブル名セット
if (!$tbl_flg) {
$base_sql = "INSERT INTO {$data['0']} ";
$tbl_flg = true;
if ($data[0] == "dtb_pagelayout") {
$pagelayout_flg = true;
}
continue;
}
// カラムフラグがたっていない場合にはカラムセット
if (!$col_flg) {
if ($mode != "restore_config") {
$base_sql .= " ( {$data['0']} ";
for ($i = 1; $i < count($data); $i++) {
$base_sql .= "," . $data[$i];
}
$base_sql .= " ) ";
}
$col_flg = true;
continue;
}
// インサートする値をセット
$sql = $base_sql . "VALUES ( ? ";
for ($i = 1; $i < count($data); $i++) {
$sql .= ", ?";
}
$sql .= " );";
$data = str_replace("\\\"", "\"", $data);
$err = $objQuery->query($sql, $data);
// エラーがあれば終了
if ($err->message != "") {
SC_Utils_Ex::sfErrorHeader(">> " . $objQuery->getlastquery(false));
return false;
}
if ($pagelayout_flg) {
// dtb_pagelayoutの場合には最初のデータはpage_id = 0にする
$sql = "UPDATE dtb_pagelayout SET page_id = '0'";
$objQuery->query($sql);
$pagelayout_flg = false;
}
// タイムアウトを防ぐ
SC_Utils_Ex::sfFlush();
}
fclose($fp);
return $ret;
}