繁体   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