Ошибка синтаксического анализа PHP; Drupal6 Deployment - PullRequest
1 голос
/ 15 ноября 2009

У меня была установка Drupal на www.example.com/test. Теперь он готов к работе, и я пытаюсь переместить его на www.example.com. Я изменил строку в sites/default/settings.php на:

$base_url = 'http://www.example.com/';  // NO trailing slash! 

Когда я перехожу к своему index.php, я получаю всевозможные ошибки разбора, например:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' 
in /home/example/public_html/sites/all/modules/typogrify/typogrify.class.php 
on line 18

Проблема заключается в следующем:

  public static function amp($text) {
    $amp_finder = "/(\s| )(&|&|&\#38;|&)(\s| )/";
    return preg_replace($amp_finder, '\\1<span class="amp">&amp;</span>\\3', $text);
  }

Каждая такая функция вызывает ошибки. тогда PHP больше не понимает этот синтаксис, который прекрасно работал раньше в подкаталоге?

Ответы [ 2 ]

3 голосов
/ 16 ноября 2009
$base_url = 'http://www.example.com/';  // NO trailing slash!

НЕТ косой черты! ;)

3 голосов
/ 16 ноября 2009

IIRC, это ошибка, возникающая при попытке использовать декларации видимости (private / protected / public) в PHP 4. Может ли быть, что ваша живая среда использует версию PHP, отличную от вашей среды тестирования? *

Хотя ядро ​​Drupal 6 по-прежнему должно быть совместимо с PHP 4, многие модули этого не делают, поскольку PHP 4 больше не поддерживается и не получает никаких исправлений безопасности с августа 2008 года . Поэтому использование его для производственной площадки не требует большой безопасности.

Поэтому, прежде чем тратить время на «исправление» этого, я бы рекомендовал немедленно перейти на PHP 5.

Возможно, это не связано с вашей проблемой, но читали ли вы комментарий к строке, в которой установлена ​​переменная $base_url? Вы должны удалить косую черту, если она у вас есть и с реальным URL.


Редактировать: Только что проверил класс Typogrify из файла-нарушителя. Кажется, это просто набор статических методов (функций). Так что, если это единственный файл, доставляющий вам проблемы, вы можете обойти это, удалив все «публичные» объявления там, так как они не являются строго необходимыми.

Обратите внимание, что я не рекомендую это - вы не должны запускать производственный сайт с устаревшей, не поддерживаемой версией PHP!)

...