1

我创建了一个包含以下内容的 PHP 页面:

<?php session_start(); ?>
<?php require_once(./classes/MaterialUtil.class.php);
$mUtil = new MaterialUtil(); 
?>

我将 MaterialUtil.class.php 文件放在 D:\xampp\htdocs\drupal\sites\all\themes\zeropoint\classes 中,但收到以下错误消息:

解析错误:语法错误,意外的“。” 在 D:\xampp\htdocs\drupal\modules\php\php.module(80) 中:第 7 行的 eval() 代码

你能告诉我我做错了什么吗?

4

2 回答 2

2

错误是由于您没有使用字符串作为文件名,PHP 将点理解为连接运算符;因此,因为在操作符之前没有任何值,PHP 给你一个错误,说它在错误的地方找到了连接操作符。

正如 kalabro 所说,正确的代码如下:

<?php session_start(); ?>
<?php require_once('./classes/MaterialUtil.class.php');
$mUtil = new MaterialUtil(); 
?>

这是与 Drupal 不严格相关的部分答案。

你正在做的不是我建议做的,有两个原因:

  • 您将“类”目录放在错误的位置。这些文件与启用的主题无关,但与正在查看的页面有关。即使您只有一个主题,并且不允许用户为自己选择主题,将这些文件放在主题目录中仍然是错误的。
    将文件放在包含主题的目录中,如果您不小心,则需要在新版本可用时对其进行更新,这可能会导致您丢失添加的其他文件。
  • 执行 PHPeval()以获取要在节点中显示的内容不是您应该做的事情。这是因为:
    • 由于您对节点使用了 PHP 过滤器,因此该节点只能对受限用户组进行编辑。(我不建议允许不受信任的用户使用 PHP 作为输入格式)
    • 当您有需要执行的 PHP 代码时,最好创建一个为站点启用的自定义模块。

如果您尝试从模块中包含 PHP 文件,那么您应该使用module_load_include()而不是require_once(),正如 marcvangend 已经建议的那样。

于 2012-04-21T14:09:28.080 回答
0

XAMP 服务器不能在 windows 文件系统格式上运行。您必须编写文件位置,例如 localhost/xyz/abc..

于 2013-06-17T08:00:29.057 回答