我正在PHP上编写一段代码,该代码从日志中读取行,并根据需要的日期回显给用户。
这是我的代码,
<?php
$x=0;
$filestring= file_get_contents( "argh.txt" ); // get the contents, and echo it out.
$filearray = explode("/n", $filestring);
while (list($var,$val) = each($filearray)) {
print "$val <br/>";
++$x;
}
?>
这是我的输出:
00:31:32,subID=1,SC=22919,Ctnt=Talk
00:31:45,subID=1,SC=22919,Ctnt=ON
00:31:45,subID=2,SC=22919,Ctnt=INVITE 0196966467
00:31:45,subID=1,SC=22919,Ctnt=Alright
00:31:45,subID=2,SC=22919,Ctnt=INVITE 0146966467
00:31:45,subID=2,SC=22919,Ctnt=INVITE 0166966467
我希望根据子id和Ctnt=Invite显示结果(筛选和显示结果,子id可以是任何东西,但Ctnt必须根据邀请0*进行筛选)后果例如:subID=1,Ctnt=
以下是您提供的代码中的一些内容,请尝试一下:
<?php
$x=0;
$filter_subID = $_POST['subID'];
$filter_Ctnt = $_POST['Ctnt'];
$filestring= file_get_contents( "argh.txt" ); // get the contents, and echo it out.
$filearray = explode("/n", $filestring);
while (list($var,$val) = each($filearray)) {
$match_sub = false;
$match_ctnt = false;
$csv = explode(',',$val);
unset($csv[0]);
$csv = array_values($csv);
foreach($csv as $logvals){
list($field,$value) = explode('=',$logvals);
if(trim($field) == 'subID' && trim($value) == $filter_subID){
$match_sub = true;
}
if(trim($field) == 'Ctnt' && trim($value) == $filter_Ctnt){
$match_ctnt = true;
}
}
if($match_sub && $match_ctnt) print "$val <br/>";
++$x;
}
?>