Ripper
Новичок
Проблема с обработкой файлов большого размера
Сабж заключается в следующем есть логи WinGAte они растут довольно динамично. Проблема в следующем как токо обем логов возрастает хотябы до 700 Кб комп начинает долго думать и чтото грузить. Я подозреваю что я чтото не так зделал с чтением и записю файлов.
Выкладываю строки как я читал файлы и записывал.
$buffer_path="C:\Program Files\WinGate\Audit\\$_POST[user]\buffer.log";
//Пусть к файлу логов
$file_path="C:\Program Files\WinGate\Audit\\$_POST[user]\\$_POST[user].log";
//Пусть к файлу содержашему стартовую строчку
$line_path="C:\Program Files\WinGate\Audit\\$_POST[user]\\line.log";
//Создание файла буфера
if(!file_exists($buffer_path))
{
$create=fopen($buffer_path,"w") or die("Не могу создать файл буфера");
fclose($create);
}
//Соозданиее файла с номером строки
if(!file_exists($line_path))
{
$create=fopen($line_path,"w") or die("Не могу создать файл Строки");
fputs ($create, "0");
fclose($create);
}
else
{
$line_s=file($line_path) or die("Невозможно считать число из Файла Строки");
for($i=0; $i <1; $i++)
{
$n=$line_s[$i]; //получение номера строчки
echo "$n</br>";
}
fclose($line_s);
}
//Создание файла содержащего число последней строчки или получени
$file_s=file($file_path) or die("Невозможно открыть Log-файл wwwProxy");
$num_str = count($file_s);
fclose($file_s);
//Заполнение буфера
$buffer_s=fopen($buffer_path,w);
for($n; $n < $num_str; $n++)
{
fputs($buffer_s, $file_s[$n]);
}
fclose($buffer_s);
//Повторное чтение
$buffer_s=fopen($buffer_path,"r") or die("Не могу открыть файл буфера");
while(!feof($buffer_s))
{
$buffer = $buffer.fgets($buffer_s,4096);
}
fclose($buffer_s);
-~{}~ 06.02.06 20:57:
После идет обработка непосредственно файла
$massive_str=explode("\n",$buffer);
for ($i=0; $massive_str[$i] != NULL; $i++)
{
$massive_row=explode("\t",$massive_str[$i]);
$date_time=explode(" ",$massive_row[0]);
$date=$date_time[0];
$date=explode("/",$date);
$date=array("20$date[2]","$date[0]","$date[1]");
$date=implode("-",$date);
$time=$date_time[1];
$ip=$massive_row[1];
$id=$massive_row[2];
$type=$massive_row[3];
$username=explode(".",basename($file_path));
$username=$username[0];
$byte_in_c=$massive_row[4];
$byte_out_c=$massive_row[5];
$byte_out_f_c=$massive_row[6];
$byte_in_f_c=$massive_row[7];
$sesion_time=$massive_row[8];
Сабж заключается в следующем есть логи WinGAte они растут довольно динамично. Проблема в следующем как токо обем логов возрастает хотябы до 700 Кб комп начинает долго думать и чтото грузить. Я подозреваю что я чтото не так зделал с чтением и записю файлов.
Выкладываю строки как я читал файлы и записывал.
$buffer_path="C:\Program Files\WinGate\Audit\\$_POST[user]\buffer.log";
//Пусть к файлу логов
$file_path="C:\Program Files\WinGate\Audit\\$_POST[user]\\$_POST[user].log";
//Пусть к файлу содержашему стартовую строчку
$line_path="C:\Program Files\WinGate\Audit\\$_POST[user]\\line.log";
//Создание файла буфера
if(!file_exists($buffer_path))
{
$create=fopen($buffer_path,"w") or die("Не могу создать файл буфера");
fclose($create);
}
//Соозданиее файла с номером строки
if(!file_exists($line_path))
{
$create=fopen($line_path,"w") or die("Не могу создать файл Строки");
fputs ($create, "0");
fclose($create);
}
else
{
$line_s=file($line_path) or die("Невозможно считать число из Файла Строки");
for($i=0; $i <1; $i++)
{
$n=$line_s[$i]; //получение номера строчки
echo "$n</br>";
}
fclose($line_s);
}
//Создание файла содержащего число последней строчки или получени
$file_s=file($file_path) or die("Невозможно открыть Log-файл wwwProxy");
$num_str = count($file_s);
fclose($file_s);
//Заполнение буфера
$buffer_s=fopen($buffer_path,w);
for($n; $n < $num_str; $n++)
{
fputs($buffer_s, $file_s[$n]);
}
fclose($buffer_s);
//Повторное чтение
$buffer_s=fopen($buffer_path,"r") or die("Не могу открыть файл буфера");
while(!feof($buffer_s))
{
$buffer = $buffer.fgets($buffer_s,4096);
}
fclose($buffer_s);
-~{}~ 06.02.06 20:57:
После идет обработка непосредственно файла
$massive_str=explode("\n",$buffer);
for ($i=0; $massive_str[$i] != NULL; $i++)
{
$massive_row=explode("\t",$massive_str[$i]);
$date_time=explode(" ",$massive_row[0]);
$date=$date_time[0];
$date=explode("/",$date);
$date=array("20$date[2]","$date[0]","$date[1]");
$date=implode("-",$date);
$time=$date_time[1];
$ip=$massive_row[1];
$id=$massive_row[2];
$type=$massive_row[3];
$username=explode(".",basename($file_path));
$username=$username[0];
$byte_in_c=$massive_row[4];
$byte_out_c=$massive_row[5];
$byte_out_f_c=$massive_row[6];
$byte_in_f_c=$massive_row[7];
$sesion_time=$massive_row[8];