簡體   English   中英

PHP解析錯誤; Drupal6部署

[英]PHP Parse Error; Drupal6 Deployment

我在www.example.com/test安裝了Drupal。 現在,它已經准備就緒,可以投入使用了,我正嘗試將其移至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會不會再在子目錄中不再理解這種語法就可以了呢?

IIRC,這是嘗試在PHP 4中使用可見性聲明(私有/受保護/公共)時遇到的錯誤。 難道是您的實際環境使用的PHP版本與測試環境不同?

雖然Drupal 6核心應該仍然與PHP 4兼容,但是許多模塊不兼容,因為PHP 4不再維護,並且自2008年8月以來未獲得任何安全修復 因此,將其用於生產現場絕對不是安全的明智之舉。

因此,在投入任何時間進行“修復”之前,我建議立即切換到PHP 5。

可能與您的問題無關,但是您是否在設置$base_url變量的行上閱讀了注釋? 您應該刪除斜杠,以防實際URL中也有斜杠。


編輯:剛剛檢查了違規文件中的“ Typogrify”類。 它似乎只是靜態方法(函數)的集合。 因此,如果這是唯一給您帶來問題的文件,那么您可以通過刪除其中的所有“公共”聲明來解決此問題,因為這些聲明並非絕對必要。

請注意,我不建議這樣做 -您不應使用已棄用的,未維護的PHP版本來運行生產站點!)

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

沒有結尾的斜杠! ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM