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 获取可变函数参数的函数
Aug 26 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 PHP
php+websocket 实现的聊天室功能详解
May 27 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
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Sanic框架流式传输操作示例
2018/07/18 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
python3.8下载及安装步骤详解
2020/01/15 Python
python如何控制进程或者线程的个数
2020/10/16 Python
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
经济学博士求职自荐信范文
2013/11/23 职场文书
车间统计员岗位职责
2014/01/05 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
法人委托书
2014/07/31 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年销售工作总结范文
2015/03/30 职场文书