Esempio n. 1
0
define('LINE_BREAK', PHP_SAPI === 'cli' ? "\n" : '<br>');
# command-line usage
if (PHP_SAPI === 'cli') {
    if (@(!$_SERVER['argv'][1])) {
        $sUsage = "\n " . basename($_SERVER['argv'][0], '.php') . "\n\n\tusage: " . basename($_SERVER['argv'][0], '.php') . " <filename>\n\n";
        die($sUsage);
    }
    $sFile = $_SERVER['argv'][1];
} else {
    $sFile = 'access.log';
}
if (!file_exists($sFile)) {
    die(LINE_BREAK . $sFile . ' does not exist in this directory!' . LINE_BREAK . LINE_BREAK);
} else {
    $oLP = new LogParser($sFile);
    echo $oLP->generateReport();
}
##################################################################################
class LogParser
{
    /**
     * Apache log file parser.
     *
     * Coded for PHP 5.4+
     * Tested on Debian, CentOS, and Windows (XAMPP) Apache log files.
     *
     * Example usage:
     *
     *                php -f logparser.php /var/log/apache2/access.log
     *                php -f logparser.php /var/log/httpd/access_log
     *                php -f logparser.php C:\XAMPP\apache\logs\access.log