2013-08-31 4 views
1

Я не уверен, почему следующий код показывает мне сообщение об ошибке в PHP 5.2, но он отлично работает в PHP 5,4PHP версии номер выпуска

$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

я разместил комментарий после строки - '$ f_channel = $ f_channelSchedule-> найти ("h2.logo") [0]; // ошибка here' – codeomnitrix

ответ

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 для более подробной информации.

+0

@codeomnitrix: Рад, что смог помочь! :) –

1

Вы не можете получить доступ к вызову функции, подобному этому в php 5.2.

Согласно manual:

В РНР 5.4 можно массива разыменовывания в результате функции или вызова метода непосредственно. До этого можно было использовать только временную переменную .

Смежные вопросы