1

任何人都可以帮我获取函数调用的目录的基本名称吗?我是说:

文件 /root/system/file_class.php

function find_file($dir, $file) {
    $all_file = scandir($dir);
    ....
}

function does_exist($file) {
    $pathinfo = pathinfo($file);
    $find = find_file($pathinfo["dirname"], $pathinfo["basename"]);
    return $find;
}

文件 /root/app/test.php

$is_exist = does_exist("config.php");

在 /root/app 我有文件“config.php,system.php”。您知道如何获取does_exist()调用的目录吗?函数中的find_file()参数$dir很重要,因为scandir()函数需要扫描目录路径。我的意思是,当我想检查文件时,config.php我不需要写/root/app/config.php. 如果我没有在$file参数中提供完整路径,则 $pathinfo["dirname"] 将为".". 我尝试dirname(__file__)file_find()函数中使用,但它返回的目录/root/system不是被调用函数/root/app的目录does_exist()

我需要创建这些功能,因为我不能使用file_exists()功能。

找到解决方案

debug_backtrace()用来获取用户调用函数的最近文件和行号。例如:

function read_text($file = "") {
    if (!$file) {
        $last_debug = next(debug_backtrace());
        echo "Unable to call 'read_text()' in ".$last_debug['file']." at line ".$last_debug['line'].".";
    }
}

/home/index.php

16 $text = read_text();

样本输出:Unable to call 'read_text()' in /home/index.php at line 16.

谢谢。

4

1 回答 1

1

使用任何 PHP 魔术常量

__DIR__
__FILE__

http://php.net/manual/en/language.constants.predefined.php

或者使用 realpath("./");

要定义自己的常量路径:

定义(“MYPATH”,真实路径(“./”)。“/dir/dir/”;

然后,您可以从包含此代码(文件)的任何地方调用此 MYPATH。

于 2013-03-23T21:21:57.610 回答