duandaotui5633 2011-12-09 19:40
浏览 41
已采纳

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

Hello I'm getting the following error

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

line 113 is $publish_content=$matches2[1];

This is my code

    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条回答 默认 最新

  • dpx49470 2011-12-11 12:12
    关注

    A way to avoid those notices thrown by php is test if the value is set before doing anything with the value.

    <?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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?