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 相关文章推荐
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
PHP实时显示输出
Oct 02 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 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 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
wxPython事件驱动实例详解
2014/09/28 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
详解python中的json和字典dict
2018/06/22 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
Python join()函数原理及使用方法
2020/11/14 Python
python urllib和urllib3知识点总结
2021/02/08 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
机械专业个人求职自荐信格式
2013/09/21 职场文书
农场厂长岗位职责
2013/12/28 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
天气温馨提示语
2015/07/14 职场文书