196 lines
6.0 KiB
PHP
196 lines
6.0 KiB
PHP
<?php
|
|
|
|
if (!defined('WPVIVID_PLUGIN_DIR')){
|
|
die;
|
|
}
|
|
class WPvivid_error_log
|
|
{
|
|
public static function create_error_log($log_file_name)
|
|
{
|
|
$dir=dirname($log_file_name);
|
|
$file=basename($log_file_name);
|
|
if(!is_dir($dir.DIRECTORY_SEPARATOR.'error'))
|
|
{
|
|
@mkdir($dir.DIRECTORY_SEPARATOR.'error',0777,true);
|
|
//@fopen($dir.DIRECTORY_SEPARATOR.'error'.'/index.html', 'x');
|
|
$tempfile=@fopen($dir.DIRECTORY_SEPARATOR.'error'.'/.htaccess', 'x');
|
|
if($tempfile)
|
|
{
|
|
//$text="deny from all";
|
|
$text="<IfModule mod_rewrite.c>\r\nRewriteEngine On\r\nRewriteRule .* - [F,L]\r\n</IfModule>";
|
|
fwrite($tempfile,$text );
|
|
@fclose($tempfile);
|
|
}
|
|
}
|
|
|
|
if(!file_exists($log_file_name))
|
|
{
|
|
return ;
|
|
}
|
|
|
|
if(file_exists($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file))
|
|
{
|
|
@wp_delete_file($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
|
|
}
|
|
|
|
@rename($log_file_name,$dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
|
|
|
|
//self::delete_oldest_error_log();
|
|
}
|
|
|
|
public static function create_restore_error_log($log_file_name)
|
|
{
|
|
$dir=dirname($log_file_name);
|
|
if(!is_dir($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'))
|
|
{
|
|
@mkdir($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error',0777,true);
|
|
//@fopen($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.'/index.html', 'x');
|
|
$tempfile=@fopen($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.'/.htaccess', 'x');
|
|
if($tempfile)
|
|
{
|
|
//$text="deny from all";
|
|
$text="<IfModule mod_rewrite.c>\r\nRewriteEngine On\r\nRewriteRule .* - [F,L]\r\n</IfModule>";
|
|
fwrite($tempfile,$text );
|
|
@fclose($tempfile);
|
|
}
|
|
}
|
|
$id = uniqid('wpvivid-');
|
|
$file=$id.'_restore_log.txt';
|
|
if(file_exists($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file))
|
|
{
|
|
@wp_delete_file($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
|
|
}
|
|
|
|
@copy($log_file_name,$dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
|
|
//self::delete_oldest_error_log();
|
|
}
|
|
|
|
public static function delete_oldest_error_log()
|
|
{
|
|
$files=array();
|
|
$log=new WPvivid_Log();
|
|
$dir=$log->GetSaveLogFolder();
|
|
$dir=$dir.'error';
|
|
@$handler=opendir($dir);
|
|
if($handler===false)
|
|
return;
|
|
$regex='#^wpvivid.*_log.txt#';
|
|
while(($filename=readdir($handler))!==false)
|
|
{
|
|
if($filename != "." && $filename != "..")
|
|
{
|
|
if(is_dir($dir.DIRECTORY_SEPARATOR.$filename))
|
|
{
|
|
continue;
|
|
}else{
|
|
if(preg_match($regex,$filename))
|
|
{
|
|
$files[$filename] = $dir.DIRECTORY_SEPARATOR.$filename;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if($handler)
|
|
@closedir($handler);
|
|
$oldest=0;
|
|
$oldest_filename='';
|
|
$max_count=5;
|
|
if(sizeof($files)>$max_count)
|
|
{
|
|
foreach ($files as $file)
|
|
{
|
|
if($oldest==0)
|
|
{
|
|
$oldest=filemtime($file);
|
|
$oldest_filename=$file;
|
|
}
|
|
else
|
|
{
|
|
if($oldest>filemtime($file))
|
|
{
|
|
$oldest=filemtime($file);
|
|
$oldest_filename=$file;
|
|
}
|
|
}
|
|
}
|
|
|
|
if($oldest_filename!='')
|
|
{
|
|
@wp_delete_file($oldest_filename);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static function get_error_log()
|
|
{
|
|
$log=new WPvivid_Log();
|
|
$dir=$log->GetSaveLogFolder();
|
|
$dir=$dir.'error';
|
|
$files=array();
|
|
$handler=opendir($dir);
|
|
if($handler === false){
|
|
return $files;
|
|
}
|
|
$regex='#^wpvivid.*_log.txt#';
|
|
while(($filename=readdir($handler))!==false)
|
|
{
|
|
if($filename != "." && $filename != "..")
|
|
{
|
|
if(is_dir($dir.$filename))
|
|
{
|
|
continue;
|
|
}
|
|
else{
|
|
if(preg_match($regex,$filename))
|
|
{
|
|
$files[] = $dir.DIRECTORY_SEPARATOR.$filename;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if($handler)
|
|
@closedir($handler);
|
|
return $files;
|
|
}
|
|
|
|
public static function get_staging_error_log()
|
|
{
|
|
if(!class_exists('WPvivid_Staging_Log_Free'))
|
|
include_once WPVIVID_PLUGIN_DIR . '/includes/staging/class-wpvivid-staging-log.php';
|
|
$log=new WPvivid_Staging_Log_Free();
|
|
$dir=$log->GetSaveLogFolder();
|
|
$dir=$dir.'error';
|
|
$files=array();
|
|
if(is_dir($dir) && file_exists($dir))
|
|
{
|
|
$handler=opendir($dir);
|
|
if($handler === false){
|
|
return $files;
|
|
}
|
|
$regex='#^wpvivid.*_log.txt#';
|
|
while(($filename=readdir($handler))!==false)
|
|
{
|
|
if($filename != "." && $filename != "..")
|
|
{
|
|
if(is_dir($dir.$filename))
|
|
{
|
|
continue;
|
|
}
|
|
else{
|
|
if(preg_match($regex,$filename))
|
|
{
|
|
$files[] = $dir.DIRECTORY_SEPARATOR.$filename;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if($handler)
|
|
@closedir($handler);
|
|
return $files;
|
|
}
|
|
else
|
|
{
|
|
return $files;
|
|
}
|
|
}
|
|
} |