2013-12-21 3 views
0

Я попытался запустить установку Drupal 7 в своей локальной среде, которая ранее работала совершенно нормально. Я использую Mac OS X. При запросе на сайт локально браузер показывает:Ошибка php parse в приложении Drupal 7

Parse error: parse error in /Library/WebServer/Documents/.../xxx.module on line 7

линия 7 является

$variables['path'] = $base_url . "/sites/default/files/" . explode('public://',$file->uri)[1] 

ИЛИ возвращает ошибку с кодом:

ERR_EMPTY_RESPONSE

Апач файл ошибок показывает:

child pid 2114 exit signal Segmentation fault (11)

php -v возвращает

PHP 5.3.26 (cli) (built: Jul 7 2013 19:05:08) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

Код, кажется, не так. Это точно так же работает на другой машине.

+0

Как насчет кода в строке 7 ?? ... возможно, вам не хватает какого-либо расширения php или что-то в этом роде – Hackerman

+0

Это строка 7: $ variables ['path'] = $ base_url. "/ sites/default/files /". взрывать ('общественности: //', $ файл-> URI) [1]; –

ответ

0

Array разыменование было added in PHP5.4. Ваш сервер имеет v5.3.26, поэтому это

explode('public://',$file->uri)[1]; 

Недопустимый синтаксис.

Вам необходимо либо обновить до 5.4 (Homebrew делает это легко), или изменить код:

$parts = explode('public://',$file->uri); 
$variables['path'] = $base_url . "/sites/default/files/" . $parts[1]; 
+0

Я обновил свой Php до самой новой версии, и ошибка анализатора исчезла. Благодаря! –

2

Почему бы вам не использовать file_create_url.

$variables['path'] = file_create_url($file->uri); 
Смежные вопросы