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/ZendEngine2的改进
Oct 09 PHP
PHP开发负载均衡指南
Jul 17 PHP
PHP array 的加法操作代码
Jul 24 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
php 强制下载文件实现代码
Oct 28 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 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网上调查系统
2006/10/09 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
js中匿名函数的创建与调用方法分析
2014/12/19 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
js获取ip和地区
2017/03/10 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
vue登录注册实例详解
2019/09/14 Javascript
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
python 操作excel表格的方法
2020/12/05 Python
python音频处理的示例详解
2020/12/23 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
.NET面试10题
2014/02/24 面试题
2014新年元旦活动策划方案
2014/02/18 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
异地年检委托书范本
2014/09/24 职场文书
学校实习推荐信
2015/03/27 职场文书
公司市场部岗位职责
2015/04/15 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js