lrase
Newbie | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Имеется скрипт парсера Код: sub parsecurcalls() { while($str=<PBX_DATA>) { $stringnumber++; if($str =~ /^(\d{4})\/(\d{2})\/(\d{2})\s+(\d{2})\:(\d{2})\:(\d{2})\,(\d{2})\:(\d{2})\:(\d{2})\,(\d+)\,(\d*)\,(\w{1})\,([\w|\d|*|#]*)\,([\w|\d|*|#]*)\,([\w|\d]*)\,(\d+)\,(\d+)\,(\d+)\,([\w|\s|\d|.]+)\,([\w|\s|\d|.]+)\,([\w|\s|\d|.]+)\,([\w|\s|\d|.]+)\,(\d+)\,(\d+)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,(\d*)\,([\w|\s|\d|.]*)\,([\w|\s|\d|.]*)\,(\d*)/) { print("$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 $32 $33 $34 $35 $36 $37\n"); unitecurcalls(); } else { print("$stringnumber\n"); if ($vars{debug} =~ /yes/i) { if ($str !~ /^$/) { print $str; }; }; }; }; }; sub unitecurcalls() { my $calltype = $16; my $callers_number = $11; my $sent_number=$13; my $colinenum = 0; # 1.Запуск вызова YYYY-MM-DD HH:MM:SS $timeofcall = "$1-$2-$3 $4:$5:$6"; # 3.Время звонка $duration = (($7 * 3600) + ($8 * 60) + $9); #11. Продолжительность. $forwarded = $18; # 1 Если для этого ID вызова существуют другие записи, 0 в ином случае # 9.Внутренний if ($calltype = 1) { return; # Внутренний вызов! } # Номер CO линии if ($21=~(/T9(\d{3})/)) { # 14. Устройство абонента 2 $colinenum=$1; } # 5.Направление if($12 =~ /O/) { $way=2; # outgoing $internally=$callers_number; # 4.Вызывающий абонент $number=$sent_number; #6. Набираемый номер, Исходящие вызовы: Набранные цифры. $co=$colinenum; } else { $way=1; # incoming $internally=$callers_number; # 4.Вызывающий абонент $number=$sent_number; #6. Набираемый номер, Входящие вызовы: Целевой добавочный номер для вызова. $co=$colinenum; } if ($timeofcall ne "") { $callsCount++; } print("$timeofcall , $forwarded , $internally , $co , $way , $number , $duration\n"); WriteRecord($timeofcall, $forwarded, $internally, $co, $way, $number, $duration); }; 1; | Скрипт должен разобрать вот эти строчки из текстового файлика Код: 2014/08/07 18:46:54,00:00:00,0,7812740****,I,7812740****,7812740****,,0,1012990,0,T9200,Line 200.0,,,0,0,,,,,,,,,,,,, 2014/08/07 18:46:54,00:00:06,0,7812740****@ipoffice,I,#AA:Callcentr,7812740****,,0,1012991,0,T9018,Line 18.1,V9542,VM Channel 42,0,0,,,,,,,,,,,,, 2014/08/07 18:46:54,00:00:00,0,7812740****,I,7812740****,7812740****,,0,1012990,0,T9200,Line 200.0,,,0,0,,,,,,,,,,,,, 2014/08/07 18:46:54,00:00:06,0,7812740****@ipoffice,I,#AA:Callcentr,7812740****,,0,1012991,0,T9018,Line 18.1,V9542,VM Channel 42,0,0,,,,,,,,,,,,, | и разложить в базу данных mysql. В место звездочек стоят цифры. Не пинайте сильно, в перле полный ноль... |