Path
debug_backtrace()
产生一条回溯跟踪(backtrace)
使用场景:
- 多个方法复用一个方法时,判断上级方法名称进行不同逻辑的切换
class A
{
public static function functionA()
{
self::functionB();
}
public static function functionB()
{
var_export(debug_backtrace());
}
}
A::functionA();
/*
array(
0 => array(
'file' => '/opt/project/php/test/t1.php',
'line' => 7,
'function' => 'functionB',
'class' => 'A',
'type' => '::',
'args' =>
array(),
),
1 => array(
'file' => '/opt/project/php/test/t1.php',
'line' => 16,
'function' => 'functionA',
'class' => 'A',
'type' => '::',
'args' =>
array(),
)
);
*/
查询上一个调用方法
/**
* 方法来源
* @Author Wcj
* @email [email protected] * @DateTime 2020/8/27 15:19 * @return mixed|string
*/
public static function from()
{
return debug_backtrace()['2']['function'] ?? '';
}
parse_url()
解析 URL,返回其组成部分
$url = "http://www.sina.com.cn/abc/de/fg.php?id=1";
var_export(parse_url($url));
/*
array (
'scheme' => 'http',
'host' => 'www.sina.com.cn',
'path' => '/abc/de/fg.php',
'query' => 'id=1',
)
*/
pathinfo()
返回文件路径的信息
var_export(pathinfo('/abc/de/fg.php'));
/*
array (
'dirname' => '/abc/de',
'basename' => 'fg.php',
'extension' => 'php',
'filename' => 'fg',
)
*/
dirname()
返回路径中的目录名称部分
echo dirname("c:/testweb/home.php"); // c:/testweb
basename()
返回路径中的文件名部分
echo basename("c:/testweb/home.php"); // home.php
getcwd()
获取当前工作的目录名称部分(绝对路径)
echo getcwd(); // C:\Users\Administrator\Desktop\test
realpath()
函数返回包含目录部分和文件名的绝对路径。该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),并返回绝对路径名。 如果失败,该函数返回 FALSE
echo realpath('test.php');
// C:\Users\1\Desktop\test\test.php
echo realpath('C:/Users/1/Desktop/../Desktop/test/test.php');
// C:\Users\1\Desktop\test\test.php
glob()
寻找与模式匹配的文件路径
foreach (glob("*.txt") as $filename) {
echo "{$filename} size " . filesize($filename) . PHP_EOL;
}
/*
funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820
*/