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编码规范-php coding standard
Mar 16 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
深入PHP数据缓存的使用说明
May 10 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 PHP
PHP asXML()函数讲解
Feb 03 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
第十一节 重载 [11]
2006/10/09 PHP
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
Python 文件操作实现代码
2009/10/07 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Django多数据库联用实现方法解析
2020/11/12 Python
python 模拟登陆github的示例
2020/12/04 Python
世界上最好的足球商店:Unisport
2019/03/02 全球购物
小学老师寄语大全
2014/04/04 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
element多个表单校验的实现
2021/05/27 Javascript