Вам просто нужно переместить часть вставки базы данных в цикл foreach.
<?php
class logAgent
{
const CONFIG_FILENAME = "data_config.ini";
private $_dbConn;
private $_config;
function __construct()
{
$this->_loadConfig();
$this->_dbConn = oci_connect($this->_config['db_usrnm'],
$this->_config['db_pwd'],
$this->_config['hostnm_sid']);
}
public function uploadLogs(){
//Array of all the files present in the directory
$f = fopen($this->_config['uploadedRegistry'], 'r');
$contents = [];
while (FALSE !== ($row = fgetcsv($f, 1000, $this->_config['filenameTimeSeparator']))){
$contents[] = $row[0];
}
$result = array_diff(scandir($this->_config['logspath']), ['.','..'], $contents);
foreach($result as $r){
$this->uploadLog($r);
}
}
private function _loadConfig()
{
// Loads config
$path = dirname(__FILE__) . '/' . self::CONFIG_FILENAME;
$this->_config = parse_ini_file($path) ;
}
public function uploadLog($filename) {
$filename = trim($this->_config['logspath'] . trim($filename));
if(file_exists($filename)){
$fh = fopen($filename,"r");
$array = array();
$started = false;
while (!feof($fh)) {
$line = trim(fgets($fh));
if($started) {
if(!ctype_space($line)&&!empty($line)&&!preg_match('#-$#',$line)){
if(strpos($line,'POST')===0){
$data=array_map('trim',str_getcsv($line,' ',''));
$temp['POST']=array_slice($data,1,2);
}
elseif(strpos($line,'GET')===0){
$data=array_map('trim',str_getcsv($line,' ',''));
$temp['GET']=array_slice($data,1,2);
}
else{
if(isset($A)){
$data=array_map('trim',str_getcsv($line,' ',''));
$data[0].=$data[1];
unset($data[1]);
$temp['Stamp']=array_combine(['REQUEST_TIME','text','IP_ADDRESS','port','ip','s_i'],$data);
unset($A);
}else{
$data=array_map('trim',str_getcsv($line,':',''));
if(isset($data[1])){
if($data[0]=='Keep-Alive'){
$d=explode(',',$data[1]);
$d[0]=array_map('trim',explode('=',$d[0]));
$d[1]=array_map('trim',explode('=',$d[1]));
$temp[$data[0]]=[$d[0][0]=>$d[0][1],$d[1][0]=>$d[1][1]];
}else{
$temp[$data[0]]=$data[1];
}
}elseif(strpos($data[0],'HTTP')===0){
$data=explode(' ',$data[0]);
$temp['HTTP']=array_combine(['version','status','message'],$data);
}else{
$temp['Query_string']=$data[0];
}
}
}
}
if(strpos($line, "--") === 0 && strpos($line, "-Z-") > 0) {
$started = false;
$array[$tmp] = $temp;
$temp=[];
$tmp++;
}
}
if(strpos($line, "--") === 0 && strpos($line, "-A-") > 0) {
$A=true;
$started = true;
$tmp=trim($line);
$temp=[];
}
}
fclose($fh);
foreach($array as $k=>$value){
if(isset($value["POST"])){
$CLIENT_REQUEST = $value['POST'][0];
$IP_ADDRESS = ($value['Stamp']['IP_ADDRESS']);
$tmp1 = explode('+', ($value['Stamp']['REQUEST_TIME']));
$REQUEST_TIME = (str_replace('[', '',$tmp1[0]));
$X_REQUESTED_WITH =($value['X-Requested-With']);
$RESPONSE_CODE = ($value['HTTP']['status']);
$TANUSER = ($value['tanuser']);
$COOKIES = ($value['cookie']);
$tmp = explode(';', ($value['cookie']));
$AUTHSCHEME = (str_replace('authscheme=','', $tmp[0]));
$AUTHMARKET = (str_replace('authMarket=','', $tmp[1]));
$SIZEOFOBJECT = ($value['Content-Length']);
$ENV = ($value['env']);
$OUTPUT_DATA = ($value['Query_string']);
$statement = "INSERT INTO AUDIT_LOGS(IP_ADDRESS,
REQUEST_TIME,
CLIENT_REQUEST,
RESPONSE_CODE,
SIZEOFOBJECT,
COOKIES,
AUTHSCHEME,
AUTHMARKET,
X_REQUESTED_WITH,
ENV,
TANUSER,
OUTPUT_DATA)
values(:IP_ADDRESS,to_date(:REQUEST_TIME, 'DD/Mon/YYYY:HH24:MI:SS' ) , :CLIENT_REQUEST, :RESPONSE_CODE , :SIZEOFOBJECT, :COOKIES, :AUTHSCHEME, :AUTHMARKET, :X_REQUESTED_WITH, :ENV, :TANUSER, :OUTPUT_DATA )";
//Preparing an Oracle statement for execution
$compiled = oci_parse($this->_dbConn, $statement);
//binding values to named parameters
oci_bind_by_name($compiled, ':IP_ADDRESS', $IP_ADDRESS);
$REQUEST_TIME = str_replace('"', '', $REQUEST_TIME);
oci_bind_by_name($compiled, ':REQUEST_TIME', $REQUEST_TIME);
oci_bind_by_name($compiled, ':CLIENT_REQUEST', $CLIENT_REQUEST);
oci_bind_by_name($compiled, ':RESPONSE_CODE', $RESPONSE_CODE);
oci_bind_by_name($compiled, ':SIZEOFOBJECT', $SIZEOFOBJECT);
oci_bind_by_name($compiled, ':COOKIES', $COOKIES);
oci_bind_by_name($compiled, ':AUTHSCHEME', $AUTHSCHEME);
oci_bind_by_name($compiled, ':AUTHMARKET', $AUTHMARKET);
oci_bind_by_name($compiled, ':X_REQUESTED_WITH', $X_REQUESTED_WITH);
oci_bind_by_name($compiled, ':ENV', $ENV);
oci_bind_by_name($compiled, ':TANUSER', $TANUSER);
oci_bind_by_name($compiled,':OUTPUT_DATA', $OUTPUT_DATA);
//Executing statement
oci_execute($compiled, OCI_COMMIT_ON_SUCCESS);
}elseif(isset($value["GET"])){
//var_dump($value['tanuser']);
}
}
//$this->updateRegistry($filename);
return TRUE;
}
else{
throw new Exception("File doesnot exist");
}
}
public function sendEmail(Exception $e){
$sent = mail($this->_config['recipients'], $this->_config['notificationSubject'], $e);
}
public function updateRegistry($filename)
{
$uploadedfilename = fopen($this->_config['uploadedRegistry'], "a");
fwrite($uploadedfilename, basename($filename . date($this->_config['filenameTimeSeparator'] . 'Ymdhi', time())) . PHP_EOL);
}
}
try {
$logAgent = new logAgent();
$logAgent->uploadLogs();
}
catch (Exception $e) {
$logAgent->sendEmail($e);
}
?>