相对包含文件

Chr*_*nch 1 php

我有一个文件

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

include('../../classes/aclass.php');
Run Code Online (Sandbox Code Playgroud)

在aclass.php里面它做:

include ('../tcpdf/config/lang/eng.php');
Run Code Online (Sandbox Code Playgroud)

似乎第二个文件中的include使用的是第一个文件工作目录而不是相对于它自身,导致错误.这是如何运作的?

mar*_*rio 11

你可以调整第二个include:

include (__DIR__.'/../tcpdf/config/lang/eng.php');
Run Code Online (Sandbox Code Playgroud)

魔术常量__DIR__指的是当前的.php文件,并通过在此之后附加相对路径,将导致正确的位置.

但它只能在PHP5.3之后运行,dirname(__FILE__)如果你需要兼容旧的设置,你必须使用该结构.