PHP获取当前文件的父目录方法汇总


Posted in PHP onJuly 21, 2016

方法一:先获得当前文件所在文件夹的长度,然后用substr来截取掉该长度:

 $dirName = str_replace("\\", "/", dirname(__FILE__));

 $dirNameLength = strlen($dirName);

 $currentDirNameLength = $dirNameLength - strrpos($dirName,"/"); //获得当前文件所在文件夹的长度!

 $parentDirName = substr($dirName,0,-$currentDirNameLength); //第3个参数如果为负数,那么表示从后面截取掉【该参数的绝对值】个字符。

方法二:将当前文件所在文件夹当作一个文件(文件夹其实是特殊的文件,一切皆为文件!!),直接用dirname嵌套一次dirname即可:

$parentDirName = dirname(dirname(__FILE__));

从上可以看出:对事物的深刻认识,能大幅度提高代码质量!

附上:PHP获取路径或目录实现

PHP获取目录和的方法通过魔术变量;通过超级全局变量;通过相关函数等等:

<?php
/**
 * PHP获取路径或目录实现
 */
 
//魔术变量,获取当前文件的绝对路径
echo "__FILE__: ========> ".__FILE__; 
echo '<br/>';
 
//魔术变量,获取当前脚本的目录
echo "__DIR__: ========> ".__DIR__;
echo '<br/>';
 
//dirname返回路径的目录部分,dirname(__FILE__)相当于__DIR__
echo "dirname(__FILE__): ========> ".dirname(__FILE__);
echo '<br/>';
 
//$_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']的结果一般相同,他们都是获取当前脚本的文件名
//只有当php以cgi方式运行时有区别,但是现在几乎找不到以cgi方式运行php了
echo '$_SERVER["PHP_SELF"]: ========> '.$_SERVER['PHP_SELF'];
echo '<br/>';
 
echo '$_SERVER["SCRIPT_NAME"]: ========> '.$_SERVER['SCRIPT_NAME'];
echo '<br/>';
 
//当前执行脚本的绝对路径。记住,在CLI方式运行php是获取不到的
echo '$_SERVER["SCRIPT_FILENAME"]: ========> '.$_SERVER['SCRIPT_FILENAME'];
echo '<br/>';
 
//当前运行脚本所在的文档根目录。在服务器配置文件中定义。
echo '$_SERVER["DOCUMENT_ROOT"]: ========> '.$_SERVER['DOCUMENT_ROOT'];
echo '<br>';
 
//getcwd()返回当前工作目录
echo "getcwd(): ========> ".getcwd();
echo '<br>';
PHP 相关文章推荐
php 设计模式之 单例模式
Dec 19 PHP
php disk_free_space 返回目录可用空间
May 10 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP设计模式(观察者模式)
Jul 07 PHP
功能强大的php分页函数
Jul 20 #PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 #PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 #PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 #PHP
无需数据库在线投票调查php代码
Jul 20 #PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 #PHP
php自定义函数实现二维数组排序功能
Jul 20 #PHP
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
文本加密解密
2006/06/23 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python中的闭包用法实例详解
2015/05/05 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python保存网页图片到本地的方法
2018/07/24 Python
父母寄语大全
2014/04/12 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
道德模范事迹材料
2014/12/20 职场文书
小学国庆节活动总结
2015/03/23 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
Nginx安装配置详解
2022/06/25 Servers