PHP中出现意外的“未定义的偏移量”错误

时间:2013-08-18 17:24:04

标签: php arrays explode

在这个项目中,我正在筛选非格式化的HTML代码并查找特定值,下面是段落解构函数的一段代码。我使用preg_replace来删除任何不需要的HTML代码,直到我最终得到由html
标签分隔的一小组变量。以下是我遇到问题的逻辑部分。出于某种原因,我在尝试打印数组$ pieces的第5个位置时收到未定义的偏移5错误。我正在使用explode函数来创建数组,并且包含了我正在运行的html代码块。

$new_broken_var = preg_replace($para_search, $para_replace, $para_subject);
$pieces = explode("<br>", $new_broken_var);
echo $pieces[5];

//upon echoing $new_broke_var I received the below html as it's value           
//<font face="Arial" size="2">For 06/01/13 to 06/30/13<br>
//Report Generated: Thursday, July 11,   2013<br>Unit:   204&nbsp;<br>
//Driver:<br>Owner:<br>Number of Trips: 27<br>Fuel Type:   Diesel</font>


   //creates an array using <br> as it's delimiter on the commented code above
   //the variable we want is in position number 5 within the array. and confirmed via print_f($pieces); 

1 个答案:

答案 0 :(得分:0)

检查所请求的索引是否确实存在于数组中是一种很好的做法。

if (isset($pieces[5])) {
    echo $pieces[5];
}

索引可能由于各种原因而不存在,但在您的情况下,您的段落似乎是空的,导致explode()返回包含单个元素的数组。