Php 相对包含文件

Php 相对包含文件,php,Php,我有一份档案 workers/activity/bulk_action.php,其中包含一个文件 include('../../classes/aclass.php'); 在aclass.php中,它执行以下操作: include ('../tcpdf/config/lang/eng.php'); 第二个文件中的include似乎正在使用第一个文件的工作目录,而不是相对于其自身,从而导致了一个错误。这是如何工作的?您可以调整第二个包含的: include (__DIR__.'/../tcpd

我有一份档案

workers/activity/bulk_action.php,其中包含一个文件

include('../../classes/aclass.php');
在aclass.php中,它执行以下操作:

include ('../tcpdf/config/lang/eng.php');

第二个文件中的include似乎正在使用第一个文件的工作目录,而不是相对于其自身,从而导致了一个错误。这是如何工作的?

您可以调整第二个
包含的

include (__DIR__.'/../tcpdf/config/lang/eng.php');
魔法常量
\uuuu DIR\uuuuu
引用当前的.php文件,通过在该文件后面附加相对路径,将指向正确的位置


但它只在PHP5.3之后才起作用,如果需要与旧设置兼容,则必须使用
dirname(\uuuuu FILE\uuuuu)
构造。

您可以使用以下内容调整第二个
include

include (__DIR__.'/../tcpdf/config/lang/eng.php');
魔法常量
\uuuu DIR\uuuuu
引用当前的.php文件,通过在该文件后面附加相对路径,将指向正确的位置

但是它只在PHP5.3之后才起作用,如果需要与旧的设置兼容,则必须使用
dirname(_文件)
构造

根据给定的文件路径包含文件,如果未给定,则根据指定的包含路径包含文件。如果在include_路径中找不到该文件,include()最终将签入调用脚本自己的目录和当前工作目录,然后失败

您可以使用
dirname(\uuuu FILE\uuuu)
获取当前执行脚本所在目录的路径:

include(dirname(dirname(__FILE__)) . '/tcpdf/config/lang/eng.php');
(从PHP5.3开始,您可以使用
\uuuuu DIR\uuuu

或者,在指向根目录的第一个文件中定义一个常量,并在include中使用它

根据给定的文件路径包含文件,如果未给定,则根据指定的包含路径包含文件。如果在include_路径中找不到该文件,include()最终将签入调用脚本自己的目录和当前工作目录,然后失败

您可以使用
dirname(\uuuu FILE\uuuu)
获取当前执行脚本所在目录的路径:

include(dirname(dirname(__FILE__)) . '/tcpdf/config/lang/eng.php');
(从PHP5.3开始,您可以使用
\uuuuu DIR\uuuu


或者,在指向根目录的第一个文件中定义一个常量,并在include中使用它。

最好为
include\u路径设置一个适当的值,然后使用相对于此目录的路径

set_include_path(
    get_include_path() .
    PATH_SEPARATOR .
    realpath(__DIR__ . '/your/lib')
);

include 'tcpdf/config/lang/eng.php';
include 'classes/aclass.php';

我还建议您查看一下自动加载。这将使文件include过时。

您最好为
include\u路径设置一个适当的值,然后使用相对于此目录的路径

set_include_path(
    get_include_path() .
    PATH_SEPARATOR .
    realpath(__DIR__ . '/your/lib')
);

include 'tcpdf/config/lang/eng.php';
include 'classes/aclass.php';
我还建议您查看一下自动加载。这将使文件包含过时