名称等信息说明,PHP解析目录路径的3个函数总结
分类:web前端

假设现在有一个图片文件,它的服务器端路径为:

PHP pathinfo() 函数

要描述一个文件的位置,可以使用决对路径和相对路径。绝对路径是从根开始一级一级地进入各个子目录,最后指定该文件名或目录名。而相对目录是从当前目录进入某目录,最后指定该文件名或目录名。在系统的每个目录下都有两个特殊的目录“.”和“..”,分别指示当前目录和当前目录的父目录(上一级目录)。例如:

1:string basename(string path[,string suffix]);

$path = "/www/mywebsite/images/myphoto.jpg";
1.pathinfo()函数 pathinfo()函数返回的是一个包含了文件信息的数组,数组中有四个元素,分别是dirname、basename、extension、filename。打印数组的代码:
复制代码 代码如下:
$fileArr = pathinfo($path);
print_r($fileArr);
//输出结果:Array ( [dirname] => /www/mywebsite/images [basename] => myphoto.jpg [extension] => jpg [filename] => myphoto )

pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。返回的数组元素如下:[dirname]:返回文件路径中的目录部分[basename]:返回文件路径中文件名的部分[extension]:返回文件路径中文件的类型的部分语法

复制代码 代码如下:
$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文件

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以suffix结束的,那这一部分也会被去掉。

这样我们只需根据数组的键名就可以获得对应的键值:

参数

在上例中,分别列出了UNIX和Windows系统中绝对路径和相对路径的格式。其中在UNIX系统中必须使用正斜线“/”作为路径分隔符,而在Windows系统中默认使用反斜线“”作为路径分隔符,在程序中表示还要将“”转义,但也接受正斜线“/”作为分隔符的写法。为了程序可以有很好的移植性,建议都使用“/”作为文件的路径分隔符。另外,也可以使用PHP的内置常量DIRECTORY_SEPARATOR,其值为当前操作系统的默认文件路径分隔符。例如:

在Windows中,斜线(/)和反斜线()都可以用作路径分隔符。在其它环境下是斜线(/)。

复制代码 代码如下:
echo $fileArr['filename'];
//输出结果:myphoto
echo $fileArr['extension'];
//输出结果:jpg
//...

描述

复制代码 代码如下:
$fileName2 = “javascript”.DIRECTORY_SEPARATOR.”common.js”; –Unix为“/”,Windows为“”

例子1.basename()例子

2.dirname()函数
dirname()函数给出一个包含有指向一个文件的全路径的字符串,它返回的值去掉文件名后的目录名,可以认为是对pathinfo()函数的扩展:
复制代码 代码如下:
echo dirname($path);
//输出结果:/www/mywebsite/images
//或者
echo dirname("/www/mywebsite/images/");
echo dirname("/www/mywebsite/images");
//输出的结果都为:/www/mywebsite

path 必需。规定要检查的路径。 options 可选。规定要返回的数组元素。默认是 all。 PATHINFO_DIRNAME - 只返回 dirname PATHINFO_BASENAME - 只返回 basename PATHINFO_EXTENSION - 只返回 extension

将目录路径中各个属性分离开通常很有用,如末尾的扩展名、目录部分和基本名。可以通过PHP的系统函数basename()、dirname()和pathinfo()函数完成这些任务。

 代码如下

所以可以理解为返回的值为路径的上一层目录地址名。
3.basename()函数 basename()函数给出一个包含有指向一个文件的全路径的字符串,他返回的值为基本的文件名,同样可以认为是对pathinfo()函数的扩展:
复制代码 代码如下:
echo basename($path);
//输出结果:myphoto.jpg
//或者
basename("/www/mywebsite/images/");
//输出结果:images

提示和注释

①函数basename()

<?php

所以可以理解为返回的值为路径的当前目录的名称。

注释:如果不是请求所有的元素,则 pathinfo() 函数返回字符串。php开启pathinfo 路由模式:pathinfo 模式 需要 php.ini 开启下面这个参数cgi.fix_pathinfo=1path_info模式:

函数basename()返回路径中的文件名部分。该函数的原型如下所示:
复制代码 代码如下:
string basename(string path[,string suffix]) //返回路径中的文件名部分

$path=网页制作教程";

实例 1

该函数给出一个包含其指向一个文件的全路径的字符串,本函数返回基本的文件名。第二个参数可选参数,规定文件的扩展名。如果提供了则不会输出这个扩展名。该函数的使用如下面的代码所示:
复制代码 代码如下:
//包含有指向一个文件的全部路径的字符串
$path = "/var/www/html/page.php";
//显示带有文件扩展名的文件名,输出page.php
echo basename($path);
//显示不带有文件扩展名的文件名,输出page
echo basename($path,".php");
?>

$file=basename($path);       //$fileissetto"index.php"

 Array ( [dirname] => /testweb [basename] => test.txt [extension] => txt ) 

②函数dirname()

$file=basename($path,".php");//$fileissetto"index"

上面的代码将输出:string"test.txt"string"txt"

该函数恰好与basename()相反,只需要一个参数,给出一个包含有指向一个文件的全部路径的字符串,本函数返回去掉文件名后的目录名。该函数的使用如以下代码所示:

?>

假设现在有一个图片文件,它的服务器端路径为: $path = "/www/mywebsite/images/myphoto.jpg";

复制代码 代码如下:
$path = "/var/www/html/page.php";
echo dirname($path); //返回目录名/var/www/html
echo dirname('c:/'); //返回目录名c:/
?>

2:string dirname(string path);

1.pathinfo()函数 pathinfo()函数返回的是一个包含了文件信息的数组,数组中有四个元素,分别是dirname、basename、extension、filename。打印数组的代码: 复制代码 代码如下: $fileArr = pathinfo; print_r; //输出结果:Array ( [dirname] => /www/mywebsite/images [basename] => myphoto.jpg [extension] => jpg [filename] => myphoto ) 这样我们只需根据数组的键名就可以获得对应的键值: 复制代码 代码如下: echo $fileArr['filename']; //输出结果:myphoto echo $fileArr['extension']; //输出结果:jpg //... 2.dirname()函数 dirname()函数给出一个包含有指向一个文件的全路径的字符串,它返回的值去掉文件名后的目录名,可以认为是对pathinfo()函数的扩展: 复制代码 代码如下: echo dirname; //输出结果:/www/mywebsite/images //或者 echo dirname("/www/mywebsite/images/"); echo dirname("/www/mywebsite/images"); //输出的结果都为:/www/mywebsite 所以可以理解为返回的值为路径的上一层目录地址名。 3.basename()函数 basename()函数给出一个包含有指向一个文件的全路径的字符串,他返回的值为基本的文件名,同样可以认为是对pathinfo()函数的扩展: 复制代码 代码如下: echo basename; //输出结果:myphoto.jpg //或者 basename("/www/mywebsite/images/"); //输出结果:images 所以可以理解为返回的值为路径的当前目录的名称。

③函数pathinfo()

参数是是一个文件路径的字符串,返回去掉文件名后的目录
__FILE__的路径是当前代码所在文件
 
dirname(dirname(__FILE__));得到的是文件上一层目录名
dirname(__FILE__);得到的是文件所在层目录名

函数pathinfo()返回一个关联数组,其中包括指定路径中的目录名、基本名和扩展名三个部分。分别通过数组键dirname、basename和extension来引用。该函数的使用如下代码所示。

例子

复制代码 代码如下:
$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
echo dirname("c:/testweb/home.php");
echo dirname("/testweb/home.php");
?>输出:

c:/testweb
/testweb

3:array pathinfo($path);

参数是一个文件路径的字符串,返回一个包含目录名、文件名和扩展名三个部分的数组,分别通过dirname、basename、extension来引用

例子 1

 代码如下

<?php
print_r(pathinfo("/testweb/test.txt"));
?>

输出:

 代码如下

Array
(
[dirname] => /testweb
[basename] => test.txt
[extension] => txt
)

例子 2

 代码如下

<?php
print_r(pathinfo("/testweb/test.txt",PATHINFO_BASENAME));
?>

输出:

 代码如下

test.txt

本文由10bet手机官网发布于web前端,转载请注明出处:名称等信息说明,PHP解析目录路径的3个函数总结

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文