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 相关文章推荐
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
php 设计模式之 工厂模式
Dec 19 PHP
php daodb插入、更新与删除数据
Mar 19 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
PHP中的流(streams)浅析
Jul 02 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 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面试题(对属性或方法的访问控制)
2012/09/13 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
javascript学习之闭包分析
2010/12/02 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
elementUI多选框反选的实现代码
2019/04/03 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
Python FTP操作类代码分享
2014/05/13 Python
Python计算一个文件里字数的方法
2015/06/15 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
如何使用python代码操作git代码
2020/02/29 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
大学活动总结范文
2014/04/29 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书