doutonghang2761 2014-06-30 18:55
浏览 71

PHP错误:未定义的偏移量:2

I'm having an issues with this PHP code. Its supposed to extract the total amount of errors that occur in a log file. Every time I run it, I get this error: Undefined offset: 2

<?php

$handle = fopen('../../apache2/logs/error.log','r') or die ('File opening failed');
$requestsCount = 0;
$numerror = 0;

while (!feof($handle)) {
    $dd = fgets($handle);
    $requestsCount++;   
    $parts = explode('"', $dd);
    $statusCode = substr($parts[2], 0, 4);
    if (hasRequestType($statusCode, 'error')) $numerror++;
}

echo "Total Errors: " . $numerror . "<br />";
fclose($handle);

function hasRequestType($l,$s) {
        return substr_count($l,$s) > 0;
}
?>

Any help would be great

  • 写回答

1条回答 默认 最新

  • douhao2548 2014-06-30 18:59
    关注

    You need to check if the array offset exists before attempting to access it:

     $statusCode = substr($parts[2], 0, 4);
    

    should be

    if (array_key_exists(2, $parts)) { 
        $statusCode = substr($parts[2], 0, 4);
    } else $statusCode = -1; //or whatever you want to do if there is no status code
    
    评论

报告相同问题?

悬赏问题

  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?