#!/usr/bin/php5 $v) { if (is_int($v)) { $parse[$k] = intval($v); } else { $parse[$k] = '\'' . mysql_real_escape_string($v) . '\''; } } $table = 'logs_' . str_replace('.', '', $_SERVER['argv'][1]); mysql_query('INSERT INTO ' . $table . '(' . implode(',', array_keys($parse)) . ') VALUES(' . implode(',', array_values($parse)) . ')') or die (mysql_error()); $last = md5($data); //sleep(1); } mysql_close(); // functions function parse_input($input) { $defaults = array('remote_ip', 'remote_log', 'remote_user', 'request_time', 'http_request', 'request_code', 'request_size', 'referer_uri', 'user_agent'); $matches = array(); preg_match('#([0-9]{0,3}.[0-9]{0,3}.[0-9]{0,3}.[0-9]{0,3}) (\-|[a-zA-Z0-9\.]) (\-|[a-zA-Z0-9@\.\-]+) \[(.+?)\] "(.+?)" ([0-9]{3}) (-|[0-9]+) "(.+?)" "(.+?)"#', $input, $matches); array_shift($matches); $matches[3] = parse_time($matches[3]); $results = array(); foreach ($matches as $k=>$v) { $results[$defaults[$k]] = $matches[$k]; } unset($matches); return $results; } function parse_time($string) { $string = preg_replace('#([0-9]{0,2})\/([a-zA-Z]+)\/([0-9]{0,4})\:#', '\2 \1 \3 ', $string); return strtotime($string); }