есть ли у кого нибудь простой вариант анализатора лог файлов? или тхт файлов?
именно рабочий пример если можно.
спасибо.
Спустя 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 - а какие свои соображения по этому поводу? Да и вообще - правильно тебя уже просили - что за данные-то? В целом всё просто: открываешь файл, читаешь данные (все сразу или поочередно, построчно), анализируешь. А дальше разбирайся по каждому шагу, смотри, что не понятно будет - тогда и спрашивай. И только сначала свой код показывай, который ты сделал. Будем разбираться, что не понятно в нем, что не получилось. |
в том то и дело что не знаю с чего начинать
данные - это файл лог, в котором строки типа дата, юзер, время, айди, опция, чек (все через пробел)
а я даже не знаю как РНР кодом открыть файл .тхт или .лог и как это вывести потом хотя бы в строкт
Спустя 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 написал(а):
подскажите плиз как это правильно сделать??
так зацикливается array :(
пробовал так -
тоже не то..
$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"); |
спасибо. хороший рабочий пример.
а как можно выводить только определенные слова?
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) | ||
с помошью регулярок - думаю новичку мало о чем говорит данное выражение. может кто посоветует что? |
советую почитать про них тогда, всегда ваш Кэп)
Спустя 12 минут, 34 секунды (8.12.2011 - 13:04) Okulo написал(а):
вроде правильное решение -
вдруг кому понадобится :rolleyes:
всем спасибо.
$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() и массивы.
ну юзай explode() и массивы.