我有一个服务器日志文件,我试图从中创建一个 PHP 页面,该页面总结了它存储的数据。日志中的每条记录都存储在一个新行上,格式为:
207.3.35.52 -- [2007-04-01 01:24:42] "GET index.php HTTP/1.0" 200 11411 "Mozilla/4.0"
//ip -- [timestamp] "GET url HTTP/1.0" status code bytes "user agent".
我正在尝试编写一个摘要,其中显示:请求总数、来自文章目录的请求总数、消耗的总带宽以及最后 404 错误及其页面的数量。
PHP:
$handle = fopen('logfiles/april.log','r') or die ('File opening failed');
$requestsCount = 0;
while (!feof($handle)) {
$dd = fgets($handle);
$requestsCount++;
$parts = explode('"', $dd);
$statusCode = substr($parts[2], 0, 4);
}
fclose($handle);
此代码打开文件并统计记录数量,分离并找到记录中的状态代码编号。回显 $statusCode 时,它确实显示了正确的信息,显示了日志中的所有状态代码。
一个接受两个论点来总计 404 错误的函数:
function requests404($l,$s) {
$r = substr_count($l,$s);
return "Total 404 errors: ".$r."<br />";
}
回显结果:
echo requests404($statusCode, '404');
这个函数不起作用,它只返回 0。在 PHP 中处理 txt 文件是我最薄弱的技能,我非常感谢一些帮助,因为我认为我可能会以完全错误的方式进行操作。谢谢。