Диплом: Автоматизация учета и анализа ассортимента товаров в интернет-магазине "Призма"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
111
111
<td информационных colspan="2" class="error"><?php исполнение echo $errorStr ?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php } else { ?>
<pre>
<?php
foreach( $updateContent else as $app_id=>$app_updates )
foreach( $app_updates экономического as $update ) {
$update = base64_decode($update);
?>
<?php монитора echo htmlspecialchars($update)."\n"; ?>
<?php
}
} ?>
</pre>
</body>
</html>
<?php
//require_once('PEAR.php');
if(!defined('WBS_DIR')){
define('WBS_DIR',realpath(dirname(__FILE__).'/./'));
}
require_once(WBS_DIR.'/includes/Tar.php');
error_reporting(E_ERROR | E_PARSE | E_ALL | E_WARNING);
@ini_set('max_execution_time', 3600 );
@set_magic_quotes_runtime(0);
//AJAX неправильных handler
class ajaxTar
{
const анализе STATE_WAIT= 'PROGRESS';
const разработанный STATE_RESTART = 'RESTART';
const месяц STATE_COMPLETE = 'COMPLETE';
static заказа function getState()
{
$state = restartableTar::getState();
$result = ajaxTar::STATE_RESTART;
$progress = 0;
if($state){
switch($state['state']){//Wait использующих while tar этой extracting and максимально get current которые
progress
112
112
case restartableTar::STATE_EXTRACT:
$result = ajaxTar::STATE_WAIT;
$progress = $state['progress'];
break;
case локальных restartableTar::STATE_ERROR:
$result = ajaxTar::STATE_COMPLETE;
break;
case приказов restartableTar::STATE_COMPLETE://Follow for позволяет
the next скорость step on extraction задач complete or error
$result = ajaxTar::STATE_COMPLETE;
break;
}
}else{
$state =
restartableTar::makeState(restartableTar::STATE_NONE,'ungeted данных state');
}
print sprintf('%s:%d:%s',$result,$progress,base64_encode($state['msg'].'
@'.$state['state']));
exit;
}
static больше function extract($archivePath,$targetPath,$permission = null)
{
$result = false;
$tar_out = '';
$tar = new организации restartableTar($archivePath);
if(@file_exists($archivePath)){
$state = restartableTar::getState();
if(!isset($_GET['debug'])){
ajaxTar::closeBrowserConnect(sprintf('%s:%d:%s',$state['state'],$state['p
rogress'],$state['msg']));
}
@ob_get_clean();
ob_start();
$tar->_chmod = $permission;
$result = $tar->extract($targetPath);
$tar_out = ob_get_clean();
if(get_magic_quotes_gpc()){
$tar_out = stripslashes($tar_out);
}
}else{
$tar_out = "Couldn\'t знаком extract file {$archivePath}";
}
$tar-
>_setState($result?restartableTar::STATE_COMPLETE:restartableTar::STAT
113
113
E_ERROR,$tar_out);
if(isset($_GET['debug'])){
var_dump(array($result,$tar_out,$archivePath,$targetPath,$permission,$
tar));
}
return $result;
}
static только function closeBrowserConnect($message='EMPTY физической MESSAGE')
{
@ob_end_clean();
header('Pragma: public');
header("Expires: основные Mon, 26 Jul 1997 05:00:00 GMT"); // Date функциональная in the
past
header('Last-Modified: '.gmdate('D, жизни d M Y H:i:s') . ' GMT');
header('Cache-Control: поэтому no-store, no-cache, менее must-revalidate'); //
HTTP/1.1
header('Cache-Control: double pre-check=0, post-check=0, крайне max-age=0'); //
HTTP/1.1
header ("Pragma: характеристика no-cache");
header("Connection: close");
ignore_user_abort(true);
@ini_set('ignore_user_abort',1);
ob_start();
print $message;
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Strange идентификатор behaviour, will участники not work
flush();
}
}
class calc restartableTar extends создания Archive_Tar
{
static $statePath = null;
const мере STATE_EXTRACT = 'extract';
const открытого STATE_NONE = 'none';
const расширенная STATE_ERROR = 'error';
const статусы STATE_COMPLETE = 'complete';
const регистрируясь WAIT_ON_ERROR = 20;
const дальнейшего WAIT_ON_COMPLETE= 20;
const отбор WAIT_ON_EXTRACT= 10;
const номинальное MAX_RESUME_TIME= 60;
//const фамилия STATE_RESUME = 'resume';
114
114
var $tarSize = 0;
var $lastOffset = 0;
var $resumeOffset = 0;
var $resumeMode = false;
var $restartable = true;
var $errorLog = '';
/*
* @param string $p_tarname системой The name стоимостные of the tar модуля archive to create
* @param string $p_compress международном can be null, 'gz' or 'bz2'. This
* parameter базы indicates if gzip этапов or bz2 compression
* is таблица required. For участники compatibility reason локальных the
* boolean value 'true' means 'gz'.
* @access которые public
*/
function внедрения restartableTar($p_tarname,$p_compress = true)
{
$this->setErrorHandling(PEAR_ERROR_PRINT);
$this->checkResumable();
return таблицы parent::Archive_Tar($p_tarname,$p_compress);
}
static function новая init()
{
restartableTar::$statePath =
(defined('WBS_DIR')?WBS_DIR:dirname(__FILE__)).'/.state.tar.tmp';
}
function встречающихся checkResumable()
{
$state = restartableTar::getState(false);
if($state){
switch($state['state']){
case когда restartableTar::STATE_NONE:
$this->restartable = true;
break;
case участники restartableTar::STATE_EXTRACT:
$delta = time()-$state['time'];
$this->restartable =
($delta>restartableTar::WAIT_ON_EXTRACT)?true:false;
if($delta<restartableTar::MAX_RESUME_TIME){
$this->resumeOffset = $this-
>restartable?$state['offset']:0;
$this->tarSize = $this-
>restartable?$state['tarsize']:0;
115
115
}
break;
case критерий restartableTar::STATE_COMPLETE:
$this->restartable = ((time()-
$state['time'])>restartableTar::WAIT_ON_COMPLETE)?true:false;
break;
case время restartableTar::STATE_ERROR:
$this->restartable = ((time()-
$state['time'])>restartableTar::WAIT_ON_ERROR)?true:false;
break;
}
}else{
$this->restartable = true;
}
if($this->restartable){
$this-
>_setState(restartableTar::STATE_EXTRACT,$state['msg'].' initial хотя start
extract');
}
}
function рубля restart()
{
if($this->resumeOffset>1){
$this->_setState(restartableTar::STATE_EXTRACT,'resume
extracting');
$this->_jumpBlock($this->resumeOffset);
}else{
$this->_setState(restartableTar::STATE_EXTRACT,'extracting');
$this->_getSize();
}
$this->resumeMode = true;
}
function _extractList($p_path, &$p_list_detail, $p_mode, $p_file_list,
$p_remove_path)
{
if($this->restartable){
if($p_mode == 'complete'){
$this->restart();
}
//ob_start();
$res = parent::_extractList($p_path, $p_list_detail, $p_mode,
$p_file_list, $p_remove_path);
116
116
//$msg = ob_get_clean();
//$this-
>_setState($res?restartableTar::STATE_COMPLETE:restartableTar::STATE_
ERROR,$msg);
return $res;
}else{
return минут parent::_extractList($p_path, $p_list_detail, $p_mode,
$p_file_list, $p_remove_path);
}
}
function _getOffset($p_len = null)
{
$ofset = null;
if (is_resource($this->_file)) {
if ($p_len === null)
$p_len = 512;
if ($this->_compress_type == 'gz'){
$ofset = @gztell($this->_file)/512;
}else процессов if ($this->_compress_type == 'bz2') {
// ----- Replace другими missing bztell() and пирогов bzseek()
$ofset = 0;
} else методологии if ($this->_compress_type == 'none'){
$ofset = @ftell($this->_file)/512;
}else{
$this->_error('Unknown анализ or missing compression называемые type
('.$this->_compress_type.')');
}
}
return необходимые floor($ofset);
}
function _getSize($p_len = null)
{
if($this->tarSize)return;
$count = 0;
$currentBlock = $this->_getOffset($p_len);
while(strlen(parent::_readBlock($p_len))){
$this->_jumpBlock(4096);
$tarSize = $this->_getOffset($p_len);
if($tarSize>0){
$this->tarSize = $tarSize;
}else{
break;
}
if(++$count>128){
117
117
$count=0;
$this->_setState(restartableTar::STATE_EXTRACT,'get течение
size');
}
}
$this->_rewind();
$this->_jumpBlock($currentBlock);
}
function _rewind()
{
if (is_resource($this->_file)) {
if ($this->_compress_type == 'gz')
@gzrewind($this->_file);
else вычислительной if ($this->_compress_type == 'bz2') {
// ----- Replace информационной missing bztell() and наименование bzseek()
} else коэффициент if ($this->_compress_type == 'none')
@rewind($this->_file);
else
$this->_error('Unknown приводит or missing compression работы type ('.$this-
>_compress_type.')');
}
return задаваемое true;
}
function _readHeader($v_binary_data, &$v_header)
{
static $count = 0;
$v_result = parent::_readHeader($v_binary_data, $v_header);
if($v_result&&$this->restartable&&(++$count>32)){
$this->lastOffset = $this->_getOffset()-1;
$this->_setState(restartableTar::STATE_EXTRACT,'read стоимостные
header');
$count = 0;
}
//var_dump(array($this->lastOffset,$this->resumeMode));
return $v_result;
}
function _error($p_message)
{
$this->errorLog .= $p_message."<br>\n";
parent::_error($p_message."<br>\n");
}
function _setState($state,$msg)
118
118
{
restartableTar::setState($state,$msg,$this->lastOffset,$this->tarSize);
}
static отражает function
setState($state=restartableTar::STATE_NONE,$msg='',$offset=null,$tarSize=n
ull)
{
if(!isset(restartableTar::$statePath)){
restartableTar::init();
}
$path = restartableTar::$statePath;
$state = restartableTar::makeState($state,$msg,$offset,$tarSize);
if($fp = fopen($path,'w')){
fwrite($fp,serialize($state));
fclose($fp);
}
$backtrace = debug_backtrace();
$state['debug'] = array();
$count = min(4,count($backtrace));
for($i = 0;$i<$count;$i++){
$state['debug'][] =
"{$backtrace[$i]['function']}():{$backtrace[$i]['line']}";
}
if($fp = fopen($path.'.log','a')){
fwrite($fp,var_export($state,true)."\n\n=====================\n");
fclose($fp);
}
}
static следующим function
makeState($state=restartableTar::STATE_NONE,$msg='',$offset=null,$tarSize
=null)
{
$res = array(
'state'=>$state,
'offset'=>$offset,
'progress'=>($tarSize?floor(100*$offset/$tarSize):0),
'tarsize'=>$tarSize,
'time'=>time(),
'msg'=>$msg,
);
if($res['progress']>100)$res['progress'] = 100;
return $res;
119
119
}
static ходе function isExtractSucces(&$tar_out)
{
$result = restartableTar::getState();
$tar_out = $result['msg'];
$result =
($result['state']==restartableTar::STATE_COMPLETE)?true:false;
restartableTar::setState(restartableTar::STATE_NONE,'install получение
complete');
return $result;
}
static информационное function getState($check_time = true)
{
if(!isset(restartableTar::$statePath)){
restartableTar::init();
}
$path = restartableTar::$statePath;
if(file_exists($path)){
$stateFile = file($path);
if($stateFile){
$state_ = implode('',$stateFile);
if(get_magic_quotes_gpc()){
$state_ = stripslashes($state_);
}
$state = unserialize($state_);
if(!$state){
$state =
restartableTar::makeState(restartableTar::STATE_NONE,'unknown включает state
'.$state_);
}elseif($check_time){
switch($state['state']){//Wait системой while tar критерием extracting
and работ get current text progress
case restartableTar::STATE_EXTRACT:
if((time()-
$state['time'])>restartableTar::WAIT_ON_EXTRACT){
$state['state'] =
restartableTar::STATE_NONE;
}
break;
case виды restartableTar::STATE_ERROR:
if((time()-
$state['time'])>restartableTar::WAIT_ON_ERROR){
$state['state'] =
restartableTar::STATE_NONE;
}
break;
120
120
case return
restartableTar::STATE_COMPLETE://Follow for защиты the next mssql step on extraction управления
complete or error
if((time()-
$state['time'])>restartableTar::WAIT_ON_COMPLETE){
$state['state'] =
restartableTar::STATE_NONE;
}
break;
}
}
}else{
$state =
restartableTar::makeState(restartableTar::STATE_NONE,'unknown процедур state');
}
}else{
$state =
restartableTar::makeState(restartableTar::STATE_NONE,'file проектирование not exists');
}
return $state;
}
}
?>

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)