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 ftp文件上传函数(基础版)
Jun 03 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
Python中的pack和unpack的使用
2018/03/12 Python
Random 在 Python 中的使用方法
2018/08/09 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
用python写测试数据文件过程解析
2019/09/25 Python
python接口自动化框架实战
2020/12/23 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
军训自我鉴定
2013/12/14 职场文书
探矿工程师自荐信
2014/01/24 职场文书
庆元旦广播稿
2014/02/10 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
考试没考好检讨书
2015/05/06 职场文书
辛亥革命观后感
2015/06/02 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript