Php 如何使用require_once()?
我创建了一个包含以下内容的PHP页面:Php 如何使用require_once()?,php,require-once,Php,Require Once,我创建了一个包含以下内容的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中,但收到以下错误消息: 解析错误
<?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):eval()中意外的“.”第7行的代码
您能告诉我我做错了什么吗?这个错误是因为您没有使用字符串作为文件名,PHP将点理解为连接运算符;因此,因为在操作符之前没有任何值,PHP给您一个错误,说它在错误的位置找到了连接操作符 正如卡拉布罗所说,正确的代码如下:
<?php session_start(); ?>
<?php require_once('./classes/MaterialUtil.class.php');
$mUtil = new MaterialUtil();
?>
这是答案中与Drupal没有严格关系的部分
你所做的不是我建议你做的,原因有二:
- 你把“classes”目录放错地方了。这些文件与正在启用的主题无关,但与正在查看的页面相关。即使您只有一个主题,并且不允许用户为自己选择主题,将这些文件放在主题目录中仍然是错误的。
如果不小心,将文件放在包含主题的目录中(新版本可用时需要更新)可能会导致您丢失添加的其他文件 - 通过
执行PHP,例如获取要在节点中显示的内容,这不是您应该做的事情。这是因为:eval()
- 当您对节点使用PHP过滤器时,该节点将仅对一组受限制的用户可编辑。(我不建议允许不受信任的用户使用PHP作为输入格式)
- 当您有需要执行的PHP代码时,最好创建一个为站点启用的自定义模块
如果您试图从模块中包含PHP文件,则应使用,而不是marcvangend建议的
require_once()
。XAMP服务器不以windows文件系统格式运行。您必须像localhost/xyz/abc
那样编写文件位置。首先,您缺少php语法。您必须用引号将路径括起来:require_once('./classes/MaterialUtil.class.php')
。第二件事是,您的代码不是针对Drupal的。也许你应该从关于Drupal中模块开发的文章开始。我把MaterialUtil.class.php放在D:\xampp\htdocs\Drupal\sites\all\themes\zeropoint\classes中,对吗?如果不正确,你应该把它放在哪里?不幸的是,我看不出你在做什么,在你的例子中Drupal的用法在哪里。如果不引导Drupal,只需将文件的完整路径设置为/sites/all/themes/zeropoint/classes/MaterialUtil.class.php
我只想知道如何在Drupal中使用require_one。你能帮我吗?@Paul在主题中通常不需要包含类库。对我来说,听起来好像user6919正试图将功能构建到一个主题中,而实际上他应该使用它来包含文件。