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 22 PHP
PHP 中文处理技巧
Apr 25 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
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数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
php命令行写shell实例详解
2018/07/19 PHP
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
JavaScript 10件让人费解的事情
2010/02/15 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
python 文件操作删除某行的实例
2017/09/04 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
Python pickle模块实现对象序列化
2019/11/22 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
python实现定时发送邮件
2020/12/23 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
html5教程画矩形代码分享
2013/12/04 HTML / CSS
C++:局部变量能否和全局变量重名
2014/03/03 面试题
七年级地理教学反思
2014/01/26 职场文书
水电工岗位职责
2014/02/12 职场文书
实践单位评语
2014/04/26 职场文书
党委班子对照检查材料
2014/08/19 职场文书
招商引资工作汇报
2014/10/28 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
python 远程执行命令的详细代码
2022/02/15 Python
Python可视化神器pyecharts绘制水球图
2022/07/07 Python