Как разобрать лог?

Samail
На сайте с 10.05.2007
Offline
369
654

Есть переменная php с примерно таким значением:


1434199108647 11.11.111.111 rtmpe IdPHP Session tnnavurpcg33uj4raqaejmlbo5 http://**********
1434198498227 11.11.111.111 rtmpe IdPHP Session tnnavurpcg33uj4raqaejmlbo5 http://***********
1429301591941 11.11.111.111 rtmpe IdPHP Session 5fc6tm2ousaan8to59k4o16rr6 http://************
1428097044124 11.11.111.111 rtmpe IdPHP Session u5rdioai15c7ggjrjhhoo247h6 http://***************
1428096904649 11.11.111.111 rtmpe IdPHP Session u5rdioai15c7ggjrjhhoo247h6 http://************

Как отобразить на странице только даты (первая цифра) и IP, а остальное не показывать?

Coolmac
На сайте с 08.09.2011
Offline
60
#1

Samail, на коленке, как-то так:

$lines = explode("\n", $string);
foreach($lines as $line){
$line = explode(" ", $line);
foreach($line as $l){
echo $l[0] . " - " . $l[1] . "<br />";
}
}

Ну или тоже самое, только callback-ми. Будет правильнее и быстрее.

Доступные vps/ds с грамотной тех. поддержкой (https://my.friendhosting.net/pl.php?11304)
Samail
На сайте с 10.05.2007
Offline
369
#2

Что-то у меня результат получился вида: "1 - 4l - od - 5u - .1 - 4l - og - 8u "

Coolmac
На сайте с 08.09.2011
Offline
60
#3

Samail, значит смотрите какие у Вас символы между строками и между значениями. И их подставляйте в explode.

---------- Добавлено 11.07.2015 в 19:22 ----------

Вообще дайте файлик на почту coolmac@list.ru

Samail
На сайте с 10.05.2007
Offline
369
#4

Работает код, если вместо $l[0] указать $linel[0].

Кстати, если заранее неизвестно сколько индексов будет, но нужно вывести самый последний, что в квадратных скобках указывать?

ДП
На сайте с 23.11.2009
Offline
203
#5

либо

$line[count($line)-1] - это если собираетесь еще использовать этот элемент, либо

array_pop($line); - если элемент больше не нужен, ибо функция его удалит.

DV
На сайте с 01.05.2010
Offline
644
#6

Консоль работает?

awk '{print $1 " " $7}'  file.log
VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Samail
На сайте с 10.05.2007
Offline
369
#7

Как вывести на экран $line[1] без дублей?

Пробовал так:


$input = array($line[1]);
$result = array_unique($input);
print $result;

Получил: ArrayArrayArrayArrayArrayArray

ДП
На сайте с 23.11.2009
Offline
203
#8
Samail:
Как вывести на экран $line[1] без дублей?
Пробовал так:

$input = array($line[1]);
$result = array_unique($input);
print $result;

Получил: ArrayArrayArrayArrayArrayArray

Если нужен вывод в одну строку - то через foreach(), а так похоже у вас еще и тут $input = array($line[1]); лишний array и должно быть просто $input = $line[1];

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий