语法错误:意外的'[',我做错了什么?

时间:2014-01-11 23:44:42

标签: php html dom

有趣的是,我一直在通过localhost在我的计算机上进行此操作。它工作得很好。然后我将相同的代码复制到GoDaddy,突然间它无效。

这是我的代码:

<?php

include ('simple_html_dom.php');

$html = file_get_html('http://www.tibia.com/community/?subtopic=worlds&world=Aurora');
$table = $html->find('table[class=Table2]')[0];

for ($i = 0; $i < 20; $i++)
{
    $player = $table->find('tr[class=Even]')[$i]->find('a')[0];
    echo $player->href . '<br>';
    $html2 = file_get_html($player->href);
    $date = $html2->find('[@id="characters"]/div[5]/div/div/table[3]/tbody/tr[2]/td[1]')[0];
    echo $date . '<br>';
    $dateArr = explode(" ", $date);
    echo $dateArr . '<br>';
    echo count($dateArr[0]);
    //for ($k = 0; count($dateArr[0]); $k++)
    //{
    //  echo $dateArr[0][$k] . '<br>';
    //}
}

?>

这是确切的错误:

  

解析错误:语法错误,意外'['in   第6行/home/content/27/11250627/html/tibia/pvplist.php

2 个答案:

答案 0 :(得分:5)

看一下阵列手册:http://www.php.net/manual/en/language.types.array.php具体看一下例子7。

它说:

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

所以你需要这样做:

$table = $html->find('table[class=Table2]'); 
$table = $table[0] 

答案 1 :(得分:4)

函数解除引用(doSomething()[someindex]的花哨名称)仅在PHP 5.4中添加。

您使用的是旧版本。

$tables = $html->find("table[class=2]");
$table = $tables[0];