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 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
Smarty+QUICKFORM小小演示
Feb 25 PHP
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
php动态实现表格跨行跨列实现代码
Nov 06 PHP
php中文验证码实现示例分享
Jan 12 PHP
php中使用url传递数组的方法
Feb 11 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
php+js实现点赞功能的示例详解
Aug 07 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生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
php遍历目录viewDir函数
2009/12/15 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
js变换显示图片的实例
2013/04/16 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
学习python (2)
2006/10/31 Python
Python操作Word批量生成文章的方法
2015/07/28 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
python实现简单的五子棋游戏
2020/09/01 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
init进程的作用
2015/08/20 面试题
软件工程专业推荐信
2013/10/28 职场文书
测绘工程个人的自我评价
2013/11/23 职场文书
上课打牌的检讨书
2014/02/15 职场文书
财产公证书格式
2014/04/10 职场文书
医德医魂心得体会
2014/09/11 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书