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 session 预定义数组
Mar 16 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
分享3个php获取日历的函数
Sep 25 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
zend framework重定向方法小结
May 28 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
PHP多进程编程实例详解
Jul 19 PHP
PHP的PDO连接讲解
Jan 24 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
什么是短波收听SWL
2021/03/01 无线电
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
php二分法在IP地址查询中的应用
2008/08/12 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
基于DataFrame改变列类型的方法
2018/07/25 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
Keras自定义IOU方式
2020/06/10 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
IBatis持久层技术
2016/07/18 面试题
会计人员岗位职责
2014/03/19 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
会计学自荐信
2014/06/03 职场文书
新教师培训方案
2014/06/08 职场文书
聊一聊python常用的编程模块
2021/05/14 Python