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 写文本日志实现代码
May 18 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
php json_encode奇怪问题说明
Sep 27 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
$_GET['goods_id']+0 的使用详解
Jun 06 PHP
php preg_replace替换实例讲解
Nov 04 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
Jul 29 PHP
php去除二维数组的重复项方法
Nov 03 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 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代码DOS造成用光网络带宽
2011/03/01 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
php从字符串创建函数的方法
2015/03/16 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
tagName的使用,留一笔
2006/06/26 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
python3大文件解压和基本操作
2017/12/15 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
村长贪污检举信
2014/04/04 职场文书
房展策划方案
2014/06/07 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
Python爬虫之爬取二手房信息
2021/04/27 Python