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 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
深入php数据采集的详解
Jun 02 PHP
ThinkPHP模板Switch标签用法示例
Jun 30 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
php实现网页端验证码功能
Jul 11 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
php 清除网页病毒的方法
2008/12/05 PHP
PHP PDO函数库详解
2010/04/27 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python实现汉诺塔算法
2021/03/01 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
.NET是怎么支持多种语言的
2015/02/24 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
毕业自荐信
2013/12/16 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL