Спасибо за общее направление - piped log. :)
>
>Как я понимаю вам нужно некие данные, имеющиеся в логах писать в
>БД, если так, то все, что пишется в логи, доступно в
>php скрипте в переменных окружения. Недостающие переменные окружения легко добавить -
>(если например речь идет о степени сжатия mod_deflate и тд) http://httpd.apache.org/docs/env.html
>
а дальше в httpd.conf
CustomLog "| c:/php/cli/php.exe d:/site/htdocs/test.php" combined
или
CustomLog "| c:/usr/bin/perl.exe d:/site/cgi-bin/test.cgi" combined
cgi-скрипт читает строки из stdin (переменные окружения не потребуются)
примеры
PHP:
<?
$fp = fopen ("php://stdin", "r");
$fp1 = fopen ("d:/site/htdocs/test.txt", "a");
while ($line = fgets($fp))
{
if (preg_match('/^([^ ]+) ([^ ]+) ([^ ]+) \[([^\]]+)\] "([^" ]+) ([^" ]+) ([^" ]+)" (\d+) (\d+) "([^" ]+)" "(.+)"/', $line, $matches))
{
$results = print_r($matches, true);
fputs($fp1, $results);
}
}
fclose($fp1);
fclose($fp);
?>
Perl:
#!/usr/bin/perl
while(<STDIN>)
{
обработка строки
}