正文
getcwd() // 显示是 在哪个文件里调用此文件 的目录, 是命令入口文件所在目录,如 /var/www/html/test/public
__DIR__ // 当前内容写在哪个文件就显示这个文件目录,如 /var/www/html/test/backend/controllers
__FILE__ // 当前内容写在哪个文件就显示这个文件目录+文件名,如 /var/www/html/test/backend/controllers/AdminController.php
__FUNCTION__ // 返回当前函数名,如 actionGetAgentOne
__METHOD__ // 返回当前类方法名,如 backend\controllers\AdminController::actionGetAgentOne
另外配合用的比较频繁的还有
basename() // 函数返回路径中的文件名部分,如 basename("/var/www/html/test/backend/controllers/AdminController.php"); 返回 AdminController.php
dirname(path) // 返回路径中的目录部分,如 dirname("/var/www/html/test/backend/controllers/AdminController.php"); 返回 /var/www/html/test/backend/controllers
pathinfo() // 返回文件路径的信息,如 pathinfo("/var/www/html/test/backend/controllers/AdminController.php"); 返回
array(4) {
["dirname"]=>
string(38) "/var/www/html/test/backend/controllers"
["basename"]=>
string(19) "AdminController.php"
["extension"]=>
string(3) "php"
["filename"]=>
string(15) "AdminController"
}
realpath() // 返回规范化的绝对路径名
在程序开发中,经常会看到一个目录操作的方法或函数,自己也时常会使用到,到关于应用路径的变量、函数、方法有些多,下面总结下。
/var/www/yii2_1108/backend/web/index.php 里面打印看看
echo __FILE__; // /var/www/yii2_1108/backend/web/index.php
echo __DIR__; // /var/www/yii2_1108/backend/web
echo dirname(__FILE__); // /var/www/yii2_1108/backend/web
echo $_SERVER["PHP_SELF"]; // /index.php
echo $_SERVER["SCRIPT_NAME"]; // /index.php
// $_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']的结果一般相同,他们都是获取当前脚本的文件名,
// 只有当php以cgi方式运行时有区别,但是现在几乎找不到以cgi方式运行php了
echo $_SERVER["SCRIPT_FILENAME"]; // /var/www/yii2_1108/backend/web/index.php , 当前执行脚本的绝对路径。记住,在CLI方式运行php是获取不到的
echo $_SERVER["DOCUMENT_ROOT"]; // /var/www/yii2_1108/backend/web , 当前运行脚本所在的文档根目录,在服务器配置文件中定义
echo getcwd(); // /var/www/yii2_1108/backend/web , getcwd()返回当前工作目录
参考资料
https://www.cnblogs.com/forthxu/p/3232505.html
https://www.jb51.net/article/107399.htm
常用PHP设计模式: https://yuanxuxu.com/2014/01/27/chang-yong-phpshe-ji-mo-shi/
https://www.cnblogs.com/hf8051/p/4613103.html
Filesystem 函数 http://www.w3school.com.cn/php/php_ref_filesystem.asp
pathinfo http://www.w3school.com.cn/php/func_filesystem_pathinfo.asp