Php include_once和绝对路径

时间:2015-06-09 17:14:11

标签: php php-include

我正在尝试编写一个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(),它会崩溃。

我想使用绝对路径,所以我不必担心我在哪里调用函数以及所有这些。 我是否对绝对路径做错了什么?如果是这样,那么正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

或许建议使用PHP magic function 文件,由于各种原因,它提供了完整路径作为一种良好做法。

<强> __文件__

  

解决了符号链接的文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。

例如:

require_once (dirname(__FILE__) . '/include.inc.php');

以下解释了差异;

  • 包含 include()语句包含并评估指定的文件。

  • 包含一次 include_once()语句在执行脚本期间包含并评估指定的文件。这是一种类似于include()语句的行为,唯一的区别是如果已经包含文件中的代码,则不会再次包含它。顾名思义,它只包含一次。

  • <强>需要 require()和include()在各方面都是相同的,除了它们如何处理失败。它们都产生警告,但require()导致致命错误。换句话说,如果您希望丢失文件来暂停页面处理,请不要犹豫使用require()。

  • 需要一次 require_once()语句在执行脚本期间包含并评估指定的文件。这是一种类似于require()语句的行为,唯一的区别是如果已经包含了文件中的代码,则不会再次包含它。

reference

希望这有帮助。