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转成EXE文件
Oct 09 PHP
PHP 5.0 Pear安装方法
Dec 06 PHP
PHP中文汉字验证码
Apr 08 PHP
关于页面优化和伪静态
Oct 11 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
php实现简单的MVC框架实例
Sep 23 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
php自动加载代码实例详解
Feb 26 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
再说下636单管机
2021/03/02 无线电
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
解决GD中文乱码问题
2007/02/14 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
php动态函数调用方法
2015/05/21 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
js运动事件函数详解
2016/10/21 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
Python多进程fork()函数详解
2019/02/22 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
python mysql中in参数化说明
2020/06/05 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
实习鉴定范文
2013/12/19 职场文书
大学生的网上创业计划书
2013/12/31 职场文书
24岁生日感言
2014/01/13 职场文书
车辆工程专业求职信
2014/04/28 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
会计求职信怎么写
2015/03/20 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js