PHP dirname(__FILE__)原理及用法解析


Posted in PHP onOctober 28, 2020

dirname(dirname(_FILE_));

假设__FILE__为 /home/web/config/config.php

上面的方法输出为 /home/web

dirname(dirname(\__FILE__));//得到的是文件上一层目录名
dirname(\__FILE__);//得到的是文件所在层目录名

发现网上找了很多文章都是错误的,特别验证后发出来:

dirname(_FILE_)

php中定义了一个很有用的常数,即:_file_

这个内定常数是所在php程序文件的完整路径(路径+文件名)。

即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。

请看下面例子:

F:\Modoer_2.6_SC_UTF8\upload\test\a.php

<?php
$the_full_name=__FILE__;
$the_dir=dirname(__FILE__);
echo $the_full_name; //返回:F:\Modoer_2.6_SC_UTF8\upload\test\a.php
echo $the_dir; //返回:F:\Modoer_2.6_SC_UTF8\upload\test
?>

**F:\Modoer_2.6_SC_UTF8\upload\b.php
**

<?php
include "test/a.php";//返回:F:\Modoer_2.6_SC_UTF8\upload\test\a.phpF:\Modoer_2.6_SC_UTF8\upload\test

echo $the_full_name; //返回:F:\Modoer_2.6_SC_UTF8\upload\test\a.php
echo $the_dir; //返回:F:\Modoer_2.6_SC_UTF8\upload\test
?>

简单地说:

_FILE_ 返回其所在文件的路径+文件名

dirname(_FILE_) 返回_FILE__所在文件的路径部分

dirname(dirname(_FILE));得到的是__FILE__所在文件的上一层目录名(不含最后一个“\”号)

例如,当前文件是 F:\Modoer_2.6_SC_UTF8\upload\test\a.php,则

_FILE_ 得到的就是完整路径 即 F:\Modoer_2.6_SC_UTF8\upload\test\a.php ,而

dirname(_FILE_)得到路径部分 即 F:\Modoer_2.6_SC_UTF8\upload\test

dirname(dirname(_FILE_)),即:F:\Modoer_2.6_SC_UTF8\upload

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
xajax写的留言本
Nov 25 PHP
劣质的PHP代码简化
Feb 08 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
Dec 29 PHP
基于PHP开发中的安全防范知识详解
Jun 06 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
phpfpm的作用和用法
Oct 10 PHP
PHP基本语法
Mar 31 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 #PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 #PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 #PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 #PHP
Laravel配合jwt使用的方法实例
Oct 25 #PHP
数据结构之利用PHP实现二分搜索树
Oct 25 #PHP
如何运行/调试你的PHP代码
Oct 23 #PHP
You might like
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
python批量生成本地ip地址的方法
2015/03/23 Python
关于Django外键赋值问题详解
2017/08/13 Python
Python决策树分类算法学习
2017/12/22 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
python实现AES加密和解密
2019/03/27 Python
python如何实现代码检查
2019/06/28 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
Python帮你识破双11的套路
2019/11/11 Python
Django 解决由save方法引发的错误
2020/05/21 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
Linux如何为某个操作添加别名
2015/02/05 面试题
运动会入场解说词300字
2014/01/25 职场文书
审计专业自荐信范文
2014/04/21 职场文书
答谢词范文
2015/01/05 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书