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 相关文章推荐
PHP5 安装方法
Jan 15 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
深入密码加salt原理的分析
Jun 06 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
PHP强制转化的形式整理
May 22 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
python之wxPython应用实例
2014/09/28 Python
Python生成随机密码
2015/03/10 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
PyQt5响应回车事件的方法
2019/06/25 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
求职信范文英文版
2014/01/05 职场文书
党校学习自我鉴定
2014/02/24 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang