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