有一个包含在所需文件中的文件。我遇到的问题是,只有当用户在位于网站根目录的页面上时,包含的文件才能工作。但是如果用户分支到一个子目录,我会得到错误
无法打开流:没有这样的文件或目录
这就是我当前将带有的文件包含在所需文件中的方式。
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');