我想写一个PHP应用程序,现在我有include_once()
方法的麻烦。文件夹结构如下:
/home/header.php
/home/index.php
/home/admin/admin.php
我使用include_once('/home/header.php');
从index.php访问header.php没有问题,它工作完美,但如果我尝试在admin.php中使用相同的参数调用include_once()
,它会崩溃。
我想使用绝对路径这样我就不用担心在哪里调用函数之类的。我用绝对路径写错了吗?如果有,正确的做法是什么?
出于各种原因,使用PHP魔术函数File作为一个很好的实践可能是明智的。
__File__
已解析符号链接的文件的完整路径和文件名。如果在include中使用,则返回被包含文件的名称。
,
require_once (dirname(__FILE__) . '/include.inc.php');
下面解释;
的区别包括include()语句包含并计算指定的文件
包括一次include_once()语句在脚本执行期间包含并计算指定的文件。这是一种类似于include()语句的行为,唯一的区别是,如果来自文件的代码已经被包含,它将不会被再次包含。顾名思义,它将只包含一次。
要求Require()和include()在各方面都是相同的,除了它们如何处理失败。它们都产生一个Warning,但是require()产生一个Fatal Error。换句话说,如果您想要一个丢失的文件来停止页面的处理,请不要犹豫,使用require()。
需要一次require_once()语句在脚本执行期间包含并计算指定的文件。这是一个类似于require()语句的行为,唯一的区别是,如果来自文件的代码已经被包含,它将不会被再次包含。