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 相关文章推荐
phpmyadmin导入(import)文件限制的解决办法
Dec 11 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
PHP中Session引起的脚本阻塞问题解决办法
Apr 08 PHP
分享一个php 的异常处理程序
Jun 22 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
9个比较实用的php代码片段
Mar 15 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
简单实现PHP留言板功能
Dec 21 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 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中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
告诉大家什么是JSON
2008/06/10 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
ionic3 懒加载
2017/08/16 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
使用Python编写vim插件的简单示例
2015/04/17 Python
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
python求最大连续子数组的和
2018/07/07 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python实现大文件分割与合并
2019/07/22 Python
如何基于python操作json文件获取内容
2019/12/24 Python
Keras 使用 Lambda层详解
2020/06/10 Python
领导失职检讨书
2014/02/24 职场文书
预备党员表决心书
2014/03/11 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
典型事迹材料范文
2014/12/29 职场文书
党员活动总结
2015/02/04 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
python关于集合的知识案例详解
2021/05/30 Python
教你使用TensorFlow2识别验证码
2021/06/11 Python