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实时显示输出
Oct 02 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
递归实现php数组转xml的代码分享
May 14 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
PHP简单实现遍历目录下特定文件的方法小结
May 22 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
微信推送功能实现方式图文详解
Jul 12 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
python类继承与子类实例初始化用法分析
2015/04/17 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
小学毕业家长寄语
2014/01/19 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
优秀教师个人材料
2014/12/15 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
PHP基本语法
2021/03/31 PHP
关于python中模块和重载的问题
2021/11/02 Python