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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
php5新改动之短标记启用方法
Sep 11 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
PHP编写简单的App接口
Aug 28 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
May 09 PHP
PHP7修改的函数
Mar 09 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
生成卡号php代码
2008/04/09 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
Python实现的微信红包提醒功能示例
2019/08/22 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
应用艺术专业个人的自我评价
2014/01/03 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
我的祖国演讲稿
2014/05/04 职场文书
2014年人事部工作总结
2014/12/03 职场文书
百年孤独读书笔记
2015/06/29 职场文书
团干部培训班心得体会
2016/01/06 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL