php include - php include_once和绝对路径


php include - Php include_once and absolute paths

我想写一个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()语句的行为,唯一的区别是,如果来自文件的代码已经被包含,它将不会被再次包含。

参考