• XSS.stack #1 – первый литературный журнал от юзеров форума

Вопросы по PHP

ammok

(L1) cache
Пользователь
Регистрация
13.12.2005
Сообщения
793
Реакции
7
Вот встал тут у меня вопросик, надо парсить лог:
01Jul2006/03:45: 64.**.25.38 81.1.238.90 1 40
01Jul2006/03:50: 81.1.***.6 81.1.238.90 5 145
01Jul2006/03:50: 205.***.57.55 81.1.238.90 1 908
01Jul2006/03:50: 82.***.39.6 81.1.238.90 1 154
01Jul2006/03:50: 64.**.25.38 81.1.238.90 3 557
01Jul2006/03:55: 82.***.39.6 81.1.238.90 1 125
01Jul2006/03:55: 64.**.25.38 81.1.238.90 1 40
01Jul2006/04:00: 64.**2.25.38 81.1.238.90 2 80
Объясню в кратце: первый столбик - дата, второй - с кокого ИП, третий - на кокой ИП, четверый - количество пакетов и пятый - количество байт.

Задача сумировать количество байт.

Внимание вопрос: в строке нет разделителей, как мне из каждой строки вытащить количество байт и поместить их в $string?

В перловом скрипте я делал так:
Код:
while (<LOG>) {
chomp;
    ($a,$b,$c,$d,$e) = split;
$bytes = $e;
}

А вот как подобное заюзать на пхп?



З.Ы. Админы закрепите тему, а то в разделе уже куча подобных тем появилось.
 
З.Ы. Админы закрепите тему, а то в разделе уже куча подобных тем появилось.
А что ж ты в этих подобных темах решение своего вопроса не посмотрел?
Или гонишь, что подобные?
 
А вот как подобное заюзать на пхп?
regexp тебе в помощь
Код:
[^\s]*\s[^\s]*\s*[^\s]*\s*\d+?\s*(\d+)
Может, не слишком красивый, писался на скорую руку, но вроде находит требуемое значение
 
Давольно таки интересный вопрос... а если есть возможность киньте ссылку на мануал,док или статейку по данному делу - буду признателен...
 
nerezus
впринципе да, split тут самое простое решение. Разбить строку по пробелам с помощью регэксп или эксплод и не дурить голову :) В последнем элементе массива будет нужное значение.
про квантификаторы(вроде так называется) почитай
не совсем понял, что ты имел ввиду...По-моему, квантификаторы - это то же самое, что и кванторы (по крайней мере, запрос к гуглу это подтверждает) ака метасимволы повторений: *, ?, +, {n}, {n,}...
 
У меня тоже вопрос по парсингу: задача в php-файле состоящим только из констант типа "отсеять" имена констант и провести их по функции
------------------------
Пример содержимого файла:
------------------------
define ("_home","домашняя");
define ("_exit","выход");
------------------------
В функции должны попадать данные типа:
------------------------
filter ("home");
filter ("exit");
------------------------
p.s на php.net нет времени переводить статьи
 
Код:
$data = file("file_for_parsing.php");
while($line = array_shift($data)){
  if(strstr($line, "define")){
    $name = preg_split("/_|\"/", $line);
    filter($name[2]);
  }
}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх