PHP解析目录路径的3个函数总结


Posted in PHP onNovember 18, 2014

要描述一个文件的位置,可以使用决对路径和相对路径。绝对路径是从根开始一级一级地进入各个子目录,最后指定该文件名或目录名。而相对目录是从当前目录进入某目录,最后指定该文件名或目录名。在系统的每个目录下都有两个特殊的目录“.”和“..”,分别指示当前目录和当前目录的父目录(上一级目录)。例如:

$unixPath = “/var/www/html/index.php”; ?在UNIX系统中绝对路径,必须使用“/”作为路径分隔符

$winPath = “C:\\Appserv\\www\\index.php”; ?Windows系统的绝对路径,默认使用“\”作为路径分隔符

$winPath = “C:/Appserv/www/index.php”; ?在Windows系统中也接受“/”作为路径分隔符,推荐使用

$fileName1=”file.txt”; ?相对路径,当前目录下的file.txt文件

$fileName2=”javascript/common.js”; ?相对路径,当前目录中javascript子目录下的common.js文件

$fileName3=”../images/logo.gif”; ?相对路径,上一级目录中images子目录下的logo.gif文件

在上例中,分别列出了UNIX和Windows系统中绝对路径和相对路径的格式。其中在UNIX系统中必须使用正斜线“/”作为路径分隔符,而在Windows系统中默认使用反斜线“\”作为路径分隔符,在程序中表示还要将“\”转义,但也接受正斜线“/”作为分隔符的写法。为了程序可以有很好的移植性,建议都使用“/”作为文件的路径分隔符。另外,也可以使用PHP的内置常量DIRECTORY_SEPARATOR,其值为当前操作系统的默认文件路径分隔符。例如:

$fileName2 = “javascript”.DIRECTORY_SEPARATOR.”common.js”; ?Unix为“/”,Windows为“\”

将目录路径中各个属性分离开通常很有用,如末尾的扩展名、目录部分和基本名。可以通过PHP的系统函数basename()、dirname()和pathinfo()函数完成这些任务。

①函数basename()

函数basename()返回路径中的文件名部分。该函数的原型如下所示:

string basename(string path[,string suffix]) //返回路径中的文件名部分

该函数给出一个包含其指向一个文件的全路径的字符串,本函数返回基本的文件名。第二个参数可选参数,规定文件的扩展名。如果提供了则不会输出这个扩展名。该函数的使用如下面的代码所示:
<?php

//包含有指向一个文件的全部路径的字符串

$path = "/var/www/html/page.php";

//显示带有文件扩展名的文件名,输出page.php

echo basename($path);

//显示不带有文件扩展名的文件名,输出page

echo basename($path,".php");

?>

②函数dirname()

该函数恰好与basename()相反,只需要一个参数,给出一个包含有指向一个文件的全部路径的字符串,本函数返回去掉文件名后的目录名。该函数的使用如以下代码所示:

<?php

$path = "/var/www/html/page.php";

echo dirname($path); //返回目录名/var/www/html

echo dirname('c:/'); //返回目录名c:/

?>

③函数pathinfo()

函数pathinfo()返回一个关联数组,其中包括指定路径中的目录名、基本名和扩展名三个部分。分别通过数组键dirname、basename和extension来引用。该函数的使用如下代码所示。

<?php

$path = "/var/www/html/page.php"; 

$path_parts = pathinfo($path); //返回包括指定路径中的目录名、基本名和扩展名关联数组

echo $path_parts["dirname"]; //输出目录名/var/www/html

echo $path_parts["basename"]; //输出基本名page.php

echo $path_parts["extension"]; //输出扩展名.php

?>
PHP 相关文章推荐
MySQL GBK→UTF-8编码转换
May 24 PHP
php相当简单的分页类
Oct 02 PHP
hessian 在PHP中的使用介绍
Dec 13 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
php生成curl命令行的方法
Dec 14 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
Feb 23 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 #PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 #PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 #PHP
PHP统计目录大小的自定义函数分享
Nov 18 #PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 #PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 #PHP
PHP打开和关闭文件操作函数总结
Nov 18 #PHP
You might like
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
javascript实现拼图游戏
2021/01/29 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中使用支持向量机(SVM)算法
2017/12/26 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Python 类的特殊成员解析
2018/06/20 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
大客户销售经理职责
2013/12/04 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
毕业生评语大全
2015/01/04 职场文书
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python