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继承的一个应用
Sep 06 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
Dec 29 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
getJSON跨域SyntaxError问题分析
Aug 07 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 PHP
php字符串函数 str类常见用法示例
May 15 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 sprintf()函数用例解析
2011/05/18 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
一些常用的Javascript函数
2006/12/22 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
JavaScript中的闭包
2016/02/24 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
请说出几个常用的异常类
2013/01/08 面试题
有关爱国演讲稿
2014/05/07 职场文书
阿甘正传观后感
2015/06/01 职场文书
婚宴致辞
2015/07/28 职场文书
教务处干事工作总结
2015/08/14 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis