2016-05-02 47 views
-2

データベースにこのログデータを保存することができ、私はphpを使用してmysqlデータベースに格納したい、私はデータベースに同じ鍵を使用している、私はarray key=value形式でログデータをseparateしたいです各キー値の間にはspaceがあります。countriesには、coutry名の間にスペースが含まれています。だから私はどのように私の仕事を完了することができます。最後に、私はそれを自分で修正することができ、私はそれがあまりにも他の人に役立つことを願っていますはどのように私は私が持っているファイアウォールから<code>log file</code>

date=2016-04-11 time=11:26:29 logid=0000000013 type=traffic 
subtype=forward level=notice vd=root srcip=10.10.24.232 srcport=35321 
srcintf="port2" dstip=173.252.74.22 dstport=443 dstintf="wan1" 
poluuid=426a22f0-b2d8-51e5-4e06-b3d158ed335f sessionid=11469008 
proto=6 action=deny policyid=33 dstcountry="United States" 
srccountry="Reserved" trandisp=snat transip=202.166.220.127 
transport=35321 service="HTTPS" appid=15832 app="Facebook" 
appcat="Social.Media" apprisk=medium applist="GEN-ACC-FBBLK" 
appact=drop-session duration=22 sentbyte=120 rcvdbyte=60 sentpkt=2 
utmaction=block countapp=1 utmref=62972-2591658 date=2016-04-11 
time=11:26:29 logid=0000000013 type=traffic subtype=forward 
level=notice vd=root srcip=10.10.37.60 srcport=43857 srcintf="port2" 
dstip=202.166.193.187 dstport=443 dstintf="wan1" 
poluuid=426a22f0-b2d8-51e5-4e06-b3d158ed335f sessionid=11373387 
proto=6 action=close policyid=33 dstcountry="Nepal" 
srccountry="Reserved" trandisp=snat transip=202.166.220.127 
transport=43857 service="HTTPS" appid=41542 app="SSL_TLSv1.0" 
appcat="Network.Service" apprisk=medium applist="GEN-ACC-FBBLK" 
appact=detected duration=424 sentbyte=1320 rcvdbyte=1582 sentpkt=10 
rcvdpkt=16 utmaction=allow countapp=2 utmref=62972-2591632 
+1

オクラホマので、あなたの質問は何ですか?そして、ここでの考え方のためにログ・ファイルを見ることができますか何か試しましたか?お試しいただいたことをお見せしてから、コードを改善/修正する手助けをすることができます。 – olibiaz

+0

最初にexplode関数を使って試しましたが、必要なものが得られなかったので、ログファイルの読み込みを試すことができます。 –

+0

次に、このコードを見せてください。あなたが期待するものではないものを私たちに教えてください。あなたが私たちに示すログは、どのようにPHPで取得できますか?それは変数ですか?文字列?アレイで?要するに、私たちにもっと情報を与えてください! – olibiaz

答えて

0

$str = file_get_contents($_FILES["file"]["tmp_name"]); 
$str1 = str_replace("\"", "", ($str)); 

$vals=split('date=', $str1); 
array_shift($vals); 

$finalArray = array(); 
$j = 0; 
foreach($vals as $v){ 
    $finalArray[$j]["date"] = substr($v, 0, 10); 
    //var_dump($v); 
    $tempString = substr($v, 11); 

    $tempArr = explode(" ", $tempString); 
    $prevTemp = ""; 
    foreach($tempArr as $i){ 
     $tmp = explode("=",$i); 
     if(!isset($tmp[1])){ 
      $finalArray[$j][$prevTemp] = $finalArray[$j][$prevTemp]." ".$i; 
     } 
     else{ 
      $finalArray[$j][$tmp[0]] = isset($tmp[1]) ? $tmp[1]: ''; 
      $prevTemp = $tmp[0]; 
     } 

    } 
    $j++; 
} 
//var_dump($finalArray); 
//die(); 


$totalQuery = ''; 
foreach($finalArray as $val){ 
    if(is_array($val)){ 
     $queryText = 'INSERT INTO `intrulog` SET'; 
     $i = 0; 
     foreach($val as $k=>$v){ 
      if(isset($v) && !empty($v)){ 
       if($i) 
        $queryText .= ','; 
       $queryText .= " `{$k}` = '{$v}' "; 
       $i++; 
      } 
     } 
     $queryText .= ";<br>"; 

     $totalQuery .= $queryText; 
    } 
} 
//echo $queryText; 
} 
関連する問題