我不确定为什么以下代码在PHP 5.2中显示错误消息,但它在php 5.4中完美运行
$f_channelList = array();
$f_channelCounter = 0;
$f_channel = null;
foreach ($f_pageContent->find("div.col") as $f_channelSchedule){
$f_channel = $f_channelSchedule->find("h2.logo")[0];//error here
if(trim($f_channel->plaintext) != " " && strlen(trim($f_channel->plaintext))>0){
if($f_channelCounter == 0){
mkdir($folderName);
}
array_push($f_channelList, $f_channel->plaintext);
$f_fileName = $folderName . "/" . trim($f_channelList[$f_channelCounter]) . ".txt";
$f_programFile = fopen($f_fileName, "x");
$f_fileContent = $f_channelSchedule->find("dl")[0]->outertext;
fwrite($f_programFile, $f_fileContent);
fclose($f_programFile);
$f_channelCounter++;
}
}
另外,我在我的代码中使用simple_html_dom.php(html parser api)来解析html页面。当我在PHP 5.2上运行此代码时,它向我显示错误消息“//错误在这里”说明“在行号67处解析错误”
由于
答案 0 :(得分:1)
你有:
$f_channel = $f_channelSchedule->find("h2.logo")[0];
^^^
数组解除引用是PHP 5.4+的功能,这就是您收到此错误的原因。如果您希望此代码适用于以前版本的PHP,则必须使用临时变量:
$temp = $f_channelSchedule->find("h2.logo");
$f_channel = $temp[0];
有关详细信息,请参阅PHP manual。
答案 1 :(得分:1)