SimpleHTML循环返回未定义的索引

时间:2013-03-28 11:48:53

标签: php

我曾使用SIMPLE HTML DOM捕获三个不同的元素。我想逐一展示它。但是它显示了使用for循环的错误消息:

  

未定义的索引:i。

什么事?请帮帮我。

include('simple_html_dom.php');

$html = file_get_html('http://....');

$a=$html->find('div.briefimage');
echo $a[0];

$b = $html->find('span.briefcitTitle');
echo $b[15];
$c = $html->find('table.bibItems td');
echo $c[0]; 

for ($i = 0; $i <= 10; ++$i) {
    echo $a[i]->plaintext . '<br>';
    echo $b[i]->outertext . '<br>';
    for ($j = i; $i <= 2; $j++) {
    echo $c[i]->innertext . '<br>';
    }
}

4 个答案:

答案 0 :(得分:1)

您应该使用$i而不只是i ...所以更改

for ($i = 0; $i <= 10; ++$i) {
    echo $a[i]->plaintext . '<br>';
    echo $b[i]->outertext . '<br>';
    for ($j = i; $i <= 2; $j++) {
    echo $c[i]->innertext . '<br>';
    }
}

for ($i = 0; $i <= 10; ++$i) {
    echo $a[$i]->plaintext . '<br>';
    echo $b[$i]->outertext . '<br>';
    for ($j = $i; $i <= 2; $j++) {
       echo $c[$i]->innertext . '<br>';
    }
}

答案 1 :(得分:0)

在迭代lop之前检查是否每个数组都已设置。或者尝试使用isset检查数组是否已设置。还要使用print_r()或var_dumb数组来检查是否在数组中获取值。你是得到通知,因为你的一个数组不包含值。

答案 2 :(得分:0)

这意味着您的某个数组$a$b$c缺少您尝试使用$i访问的密钥:

$foo = array('a', 'b');
$i = 3;
echo $foo[$i]; # Error because there is no third key in $foo

答案 3 :(得分:0)

快速查看,请尝试$i++而不是++$i

如果这不起作用var_dump $ a,$ b&amp; $ C