如何将此日志数据存储在数据库

时间:2016-05-02 04:27:22

标签: php mysql logging

我有来自防火墙的log file,我想使用mysql将其存储在php数据库中,我使用了相同的数据库密钥,我希望{{1} } separate格式的日志数据,每个键值之间再次有array key=value,并且有一些space在coutry名称之间包含空格。那我怎么能完成我的任务呢。对于这个想法,你可以看到日志文件:

countries

1 个答案:

答案 0 :(得分: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;
}