我需要像这样的函数内部的文件:
function MyFunction(){
require_once('../../myfile.php');
//do stuff
}
此功能可在站点上的任何位置使用,因此所需文件的路径不应更改。我尝试使用chdir(dirname(__FILE__));
,但是稍后在 php 中更改了我的其他文件的目录,这是不需要的。
当我在整个网站的各个目录中时,我收到一条错误消息,指出所需文件无法打开流。
我怎样才能做到这一点?
在这种情况下,您应该使用绝对路径。
在你的index.php
你应该得到你的 index.php 文件的位置,这将是你的参考点:
<?php
// store it in a constant, this info will not be changed anyway
define('APP_PATH',dirname(__FILE__));
//... rest of your code here
而且,当您必须对该文件执行 require_once 时(假设文件myfile.php
上方有 2 个目录index.php
):
require_once(dirname(dirname(APP_PATH)).DIRECTORY_SEPARATOR.'myfile.php');
或者如果myfile.php
与 index.php 在同一目录中:
require_once(APP_PATH.DIRECTORY_SEPARATOR.'myfile.php');
笔记
DIRECTORY_SEPARATOR
是路径分隔符的 PHP 常量(/
在任何 Linux、Unix、Mac 等或\
Windows 中。
我将使用require_once(__DIR__'/../myfile.php')
这个问题提供了类似的解决方案:
我倾向于使用$_SERVER['DOCUMENT_ROOT']
这样的东西。它依赖于您的文档根目录在您的虚拟主机文件中的设置位置。