PHP中__FILE__、dirname与basename用法实例分析


Posted in PHP onDecember 01, 2014

本文实例讲述了PHP中__FILE__、dirname与basename用法。分享给大家供大家参考。具体方法如下:

在php中__FILE__当前运行文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名,这是一个魔法变量(预定义常量),我们可以通用dirname与basename来获取文件目录或文件名.

一、__FILE__与dirname(__FILE__)与basename(__FILE__)使用:

通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题,代码如下:

dirname(dirname(__FILE__));

假设__FILE__为 /home/web/config/config.php,上面的方法输出为 /home/web 

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

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

假设现在的目录及文件结构如下,我们所要测试的变量在wp_smtp_admin.php文件中:

wp-content\plugins\wp-smtp\wp-smtp.php

wp-content\plugins\wp-smtp\wp_smtp_admin.php

wp-content\plugins\wp-smtp\img\blq_32_32.jpg

测试结果如下,代码如下:

echo __FILE__ . "<br />"; //输出 F:\xampp\htdocs\wordpress\wp-content\plugins\wp-smtp\wp_smtp_admin.php 

echo dirname(__FILE__) . "<br />"; //输出 F:\xampp\htdocs\wordpress\wp-content\plugins\wp-smtp 

echo basename(__FILE__) . "<br />"; //输出 wp_smtp_admin.php

二、测试wordpress自带的一些函数:
echo plugin_basename(__FILE__) . "<br />"; //输出wp-smtp/wp_smtp_admin.php 

echo dirname(plugin_basename(__FILE__)) . "<br />"; //输出 wp-smtp 

echo plugin_dir_url(__FILE__) . "<br />"; //输出 http://localhost/wordpress/wp-content/plugins/wp-smtp/ 

echo plugin_dir_path(__FILE__) . "<br />"; //输出 F:\xampp\htdocs\wordpress\wp-content\plugins\wp-smtp/ 

echo plugins_url() . "<br />"; //输出 http://localhost/wordpress/wp-content/plugins 

echo plugins_url('',__FILE__) . "<br />"; //输出 http://localhost/wordpress/wp-content/plugins/wp-smtp 

echo plugins_url('/img/blq_32_32.jpg',__FILE__)  . "<br />"; //输出 http://localhost/wordpress/wp-content/plugins/wp-smtp/img/blq_32_32.jpg

好了现在我们来看看这dirname与basename相关说明

dirname() 函数返回路径中的目录部分,basename() 函数返回路径中的文件名部分,从这里我们就不难看出上面的结果了.

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php的控制语句
Oct 09 PHP
mysql+php分页类(已测)
Mar 31 PHP
php中$this-&amp;gt;含义分析
Nov 29 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
php 发送带附件邮件示例
Jan 23 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
php 删除cookie方法详解
Dec 01 #PHP
php生成html文件方法总结
Dec 01 #PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 #PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 #PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 #PHP
PHP内置的Math函数效率测试
Dec 01 #PHP
php查找字符串出现次数的方法
Dec 01 #PHP
You might like
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
vue获取当前激活路由的方法
2018/03/17 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
python正则分析nginx的访问日志
2017/01/17 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
英国鞋网:Rubber Sole
2020/03/03 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
会计电算化应届生自荐信
2014/02/25 职场文书
应届生求职信范文
2014/05/26 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
交警失职检讨书
2015/01/26 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
Python开发五子棋小游戏
2022/05/02 Python