[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Анализатор лог файлов
Okulo
всем привет.
есть ли у кого нибудь простой вариант анализатора лог файлов? или тхт файлов?
именно рабочий пример если можно.


спасибо.



Спустя 14 минут, 23 секунды (6.12.2011 - 14:42) TranceIT написал(а):
А что анализировать то?

Спустя 7 минут, 51 секунда (6.12.2011 - 14:50) sergeiss написал(а):
Okulo - а какие свои соображения по этому поводу? Да и вообще - правильно тебя уже просили - что за данные-то?

В целом всё просто: открываешь файл, читаешь данные (все сразу или поочередно, построчно), анализируешь.

А дальше разбирайся по каждому шагу, смотри, что не понятно будет - тогда и спрашивай. И только сначала свой код показывай, который ты сделал. Будем разбираться, что не понятно в нем, что не получилось.

Спустя 15 часов, 32 минуты, 12 секунд (7.12.2011 - 06:22) Okulo написал(а):
Цитата (sergeiss @ 6.12.2011 - 11:50)
Okulo - а какие свои соображения по этому поводу? Да и вообще - правильно тебя уже просили - что за данные-то?

В целом всё просто: открываешь файл, читаешь данные (все сразу или поочередно, построчно), анализируешь.

А дальше разбирайся по каждому шагу, смотри, что не понятно будет - тогда и спрашивай. И только сначала свой код показывай, который ты сделал. Будем разбираться, что не понятно в нем, что не получилось.

в том то и дело что не знаю с чего начинать sad.gif

данные - это файл лог, в котором строки типа дата, юзер, время, айди, опция, чек (все через пробел)

а я даже не знаю как РНР кодом открыть файл .тхт или .лог и как это вывести потом хотя бы в строкт

Спустя 1 час, 54 минуты, 52 секунды (7.12.2011 - 08:17) sergeiss написал(а):
Цитата (Okulo @ 7.12.2011 - 07:22)
а я даже не знаю как РНР кодом открыть файл .тхт или .лог и как это вывести потом хотя бы в строку

ОК. Для начала открой хэлп и почитай про функции работы с файлами fopen/fclose, fread, fgets.... Я думаю, что у тебя появятся мысли, тем более, что в хэлпах есть примеры.
Кстати. Если ты работал с Си, то это те же самые функции.

Спустя 1 день, 32 минуты, 52 секунды (8.12.2011 - 08:50) Okulo написал(а):
спасибо sergeiss .

вот что я сделал :
$h = fopen("log.txt","r");
while (!feof ($h))
{
$content = fgetss($h,1024,'<h1>');
echo $content,"<br>";
}
fclose($h);


теперь данные из файла выводятся в строки.
а как можно их засунуть в массив что ли?
для того что бы выводить только те столбцы которые нужны и там где нужно...

Спустя 28 минут, 16 секунд (8.12.2011 - 09:18) sergeiss написал(а):
Цитата (Okulo @ 8.12.2011 - 09:50)
а как можно их засунуть в массив что ли?

Если ты хочешь "засунуть" в массив по принципу "одна строка - один элемент массива", то тогда это сделает функция file().

Если надо разделить каждую строку на элементы, например, по запятой (двоеточию, табуляции...), то используй функцию explode(). Применяешь к каждой строке, получаешь массив из строки. И в итоге получаешь двумерный массив всех данных. И делай с ними всё, что хочешь.

Спустя 40 минут, 8 секунд (8.12.2011 - 09:58) Okulo написал(а):
подскажите плиз как это правильно сделать??


$h = fopen("log.txt","r");
while (!feof ($h))
{
$content = fgetss($h);
$vv = explode (" ",$content);
echo $vv;
}
fclose($h);


так зацикливается array :(

пробовал так -
$myfile = 'log.txt';
$lines = file($myfile);
for($i=count($lines);$i>-1;$i--){
$lines[$i];
$arr = explode (" ",$lines);
echo $arr;
}


тоже не то..

Спустя 10 минут, 45 секунд (8.12.2011 - 10:09) bulgakov написал(а):
Попробуйте для примера так:
$str = file("log.txt");

foreach($str as $s){
// делаете со строкой $s то что вам нужно
$res = explode(" ", $s); // получаете массив строк разделенных по пробелу
//и можно например в цикле вывести этот массив

foreach($res as $r){
echo $r."<br/>";
}
echo "<br/>";
}

Спустя 1 час, 10 минут, 10 секунд (8.12.2011 - 11:19) Okulo написал(а):
Цитата (bulgakov @ 8.12.2011 - 07:09)
Попробуйте для примера так:
$str = file("log.txt");

foreach($str as $s){
// делаете со строкой $s то что вам нужно
$res = explode(" ", $s); // получаете массив строк разделенных по пробелу
//и можно например в цикле вывести этот массив

foreach($res as $r){
echo $r."<br/>";
}
echo "<br/>";
}

спасибо. хороший рабочий пример.
а как можно выводить только определенные слова?

vasya 125 user 1122
petya 126 admin 1244
oleg 147 user 1445

например с этих данные вывести в таком виде

vasya 1122
petya 1244
oleg 1445


Спустя 1 час, 3 минуты, 35 секунд (8.12.2011 - 12:23) Игорь_Vasinsky написал(а):
с помошью explode
с помошью регулярок.

подробнее - мануал.

Спустя 24 минуты, 22 секунды (8.12.2011 - 12:47) Okulo написал(а):
Цитата (Игорь_Vasinsky @ 8.12.2011 - 09:23)
с помошью explode
с помошью регулярок.

подробнее - мануал.

с помошью регулярок - думаю новичку мало о чем говорит данное выражение.

может кто посоветует что?

Спустя 4 минуты, 29 секунд (8.12.2011 - 12:51) Семён написал(а):
Цитата (Okulo @ 8.12.2011 - 13:47)
Цитата (Игорь_Vasinsky @ 8.12.2011 - 09:23)
с помошью explode
с помошью регулярок.

подробнее - мануал.

с помошью регулярок - думаю новичку мало о чем говорит данное выражение.

может кто посоветует что?

советую почитать про них тогда, всегда ваш Кэп)

Спустя 12 минут, 34 секунды (8.12.2011 - 13:04) Okulo написал(а):
вроде правильное решение -


$filename = "log.txt";

if (file_exists($filename) && is_readable ($filename))
{
$file_handle = fopen($filename, "r");

while (!feof($file_handle))
{
$row = fgets($file_handle);
$rowArray = explode(' ',$row);
echo $rowArray [0];
echo ' ';
echo $rowArray [3];
echo ' ';
echo $rowArray [6];
echo "<p>";
}

fclose($file_handle);

}



вдруг кому понадобится :rolleyes:

всем спасибо.

Спустя 1 минута, 23 секунды (8.12.2011 - 13:05) Игорь_Vasinsky написал(а):
ну если учесть что про регулярки говорят что они память жрут (хотя в таких примерах это не знаительно) - но они значительно сократят код.

ну юзай explode() и массивы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.