如何始终使用PHP包含具有绝对路径的文件



有一个包含在所需文件中的文件。我遇到的问题是,只有当用户在位于网站根目录的页面上时,包含的文件才能工作。但是如果用户分支到一个子目录,我会得到错误

无法打开流:没有这样的文件或目录

这就是我当前将带有的文件包含在所需文件中的方式。

include('classes/browser_detection.php')

所以我尝试了一些不起作用的

第一:

include('/cms/classes/browser_detection.php')

第二:

include( dirname(__DIR__) . '/classes/browser_detection.php')

这两种选择都不起作用。如果不必在需要主文件的每个页面中单独包含类,我该如何使其工作?

请参阅答案:PHP目录-最佳实践

我喜欢使用:

config.php(位于根目录中)

define('ROOT_SYS',dirname(__FILE__).'/'); //$_SERVER["DOCUMENT_ROOT"] for root access

这让我可以在本地和主机上工作,没有任何问题。在你的情况下,它看起来像:

include(ROOT_SYS . 'classes/browser_detection.php')

您可以设置包含路径

$path = '/home/mywebsite/public_html/cms/classes/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

然后

include('browser_detection.php');

相关内容

  • 没有找到相关文章

最新更新