rendered paste body#!/usr/bin/php5<?phpmysql_connect('localhost', '', '');mysql_select_db('');if (!isset($_SERVER['argv'][1])){ exit;}static $last;while (true){ $data = str_replace(array("\n", "\r"), '', fread(STDIN, 1024));; if (md5($data) == $last && !empty($data)) { continue; } $parse = parse_input($data); foreach ($parse as $k=>$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();// functionsfunction 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);}