任何人都可以帮我获取函数调用的目录的基本名称吗?我是说:
文件 /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.
谢谢。