PHP错误注意:未定义的偏移量

时间:2011-12-09 19:40:16

标签: sqlite xml-parsing command-line-interface php

您好我收到以下错误

Notice:  Undefined offset: 1 in file.php on line 113

第113行是$ publish_content = $ matches2 [1];

这是我的代码

    if(!preg_match('/\<content\:encoded\>(?:\<\!\[CDATA\[)?(.*?)(?:\]\]\>)?\<\/content\:encoded\>/si',$item,$matches2)){
        for($i2=0;$i2<count($info_tag_pairs);$i2++){
            if(preg_match('/'.custom_preg_quote($info_tag_pairs[$i2][0]).'(.*?)'.custom_preg_quote($info_tag_pairs[$i2][1]).'/si',$item,$matches2)){
                break;
            }
        }
    }

    $publish_content=$matches2[1];
    $publish_content=strip_tags($publish_content);
    $publish_content=preg_replace('/'.arrayToString($rkws,'|','custom_preg_quote').'/si','',$publish_content);
    $publish_content=trim($publish_content);
    //echo $item;
    if(!preg_match_all('/\<category\>(?:\<\!\[CDATA\[)?(.*?)(?:\]\]\>)?\<\/category\>/si',$item,$matches2)){
        for($i2=0;$i2<count($category_tag_pairs);$i2++){
            if(preg_match_all('/'.custom_preg_quote($category_tag_pairs[$i2][0]).'(.*?)'.custom_preg_quote($category_tag_pairs[$i2][1]).'/si',$item,$matches2)){
                break;
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

这意味着您的数组变量$matches1不包含键1。由于您正在访问$matches2[1],因此$matches2为空或空或只有一个值,$matches2[1]是无效的偏移量。

如果您的preg_match操作符与$item匹配,则可能会发生这种情况。

答案 1 :(得分:0)

一种避免php抛出这些通知的方法是测试是否在对值进行任何操作之前设置了值。

<?php

if (isset($matches2[1])) {
    // do what you need with $matches2[1]
    // ...
}

// or

if ( ! isset($matches2[1])) {
    // here you are sure $matches2[1] doesn't exist
    return;
}