0

我需要像这样的函数内部的文件:

function MyFunction(){
    require_once('../../myfile.php');
    //do stuff
}

此功能可在站点上的任何位置使用,因此所需文件的路径不应更改。我尝试使用chdir(dirname(__FILE__));,但是稍后在 php 中更改了我的其他文件的目录,这是不需要的。

当我在整个网站的各个目录中时,我收到一条错误消息,指出所需文件无法打开流。

我怎样才能做到这一点?

4

3 回答 3

0

在这种情况下,您应该使用绝对路径。

在你的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 中。

于 2013-02-14T07:35:53.217 回答
0

我将使用require_once(__DIR__'/../myfile.php')这个问题提供了类似的解决方案:

php require_once 没有按我想要的方式工作.. 相对路径问题

于 2013-02-14T19:12:23.737 回答
0

我倾向于使用$_SERVER['DOCUMENT_ROOT']这样的东西。它依赖于您的文档根目录在您的虚拟主机文件中的设置位置。

于 2013-02-14T05:49:24.643 回答