我正在尝试编写一个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()
,它会崩溃。
我想使用绝对路径,所以我不必担心我在哪里调用函数以及所有这些。 我是否对绝对路径做错了什么?如果是这样,那么正确的方法是什么?
答案 0 :(得分:0)
或许建议使用PHP magic function 文件,由于各种原因,它提供了完整路径作为一种良好做法。
<强> __文件__ 强>
解决了符号链接的文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。
例如:
require_once (dirname(__FILE__) . '/include.inc.php');
以下解释了差异;
包含强> include()语句包含并评估指定的文件。
包含一次 include_once()语句在执行脚本期间包含并评估指定的文件。这是一种类似于include()语句的行为,唯一的区别是如果已经包含文件中的代码,则不会再次包含它。顾名思义,它只包含一次。
<强>需要强> require()和include()在各方面都是相同的,除了它们如何处理失败。它们都产生警告,但require()导致致命错误。换句话说,如果您希望丢失文件来暂停页面处理,请不要犹豫使用require()。
需要一次 require_once()语句在执行脚本期间包含并评估指定的文件。这是一种类似于require()语句的行为,唯一的区别是如果已经包含了文件中的代码,则不会再次包含它。
希望这有帮助。