尹学洪,多媒体光盘,年鉴光盘,地方志光盘,志书光盘,光盘导航,志鉴光盘制作

php路径目录解析函数dirname basename pathinfo区别及实例

作者:江苏锐德 2021/10/27 8:59:19 人气:
php获取路径、目录或文件名称,我们经常会使用到dirname()、basename()、pathinfo()这三个函数,本文章向大家详细介绍这三个函数的区别以及使用实例,需要的朋友可以参考一下。

dirname()函数

string dirname ( string $path )
php dirname函数获取给定文件路径中的目录部分,参数$path是一个文件路径的字符串
dirname()函数经常与魔术变量__FILE__一起使用,魔术变量__FILE__表示当前运行文件的完整路径和文件名。
dirname(dirname(__FILE__));得到的是文件上一层目录名
dirname(__FILE__);得到的是文件所在层目录名

如:

<?php
/* 作者:jsred 网站地址: http://www.jsred.com */
echo dirname("c:/testweb/home.php")."<br/>";
echo dirname("/testweb/home.php")."<br/><br/>";

echo __FILE__ ."<br/>";
echo dirname(__FILE__)."<br/>";
echo dirname(dirname(__FILE__));
?>
运行结果为:

c:/testweb
/testweb

E:\wamp\www\test.php
E:\wamp\www
E:\wamp

basename()函数


string basename ( string $path [, string $suffix ] )
php basename()函数获取路径中的文件名部分,该函数与dirname()正好相反(dirname获取路径中的目录部分)。

第一个参数$path表示一个包含有指向一个文件的全路径的字符串,第二个参数表示如果文件名是以suffix结束的,那这一部分也会被去掉。
实例如下:

<?php
/* 作者:jsred http://www.jsred.com */
var_dump(basename("/etc/sudoers.d", ".d"));
var_dump(basename("/etc/passwd"));
var_dump(basename("/etc/"));
var_dump(basename("."));
var_dump(basename("/"));
?> 
运行结果:

string(7) "sudoers"
string(6) "passwd"
string(3) "etc"
string(1) "."
string(0) ""

pathinfo()函数


php pathinfo函数用于解析路径,将路径解析为一个数组,数组包括目录名、完整的文件名、文件扩展名和文件名(不包括文件后缀)四个值,并且这四个值的键名分别为dirname、basename、extension和filename,我们可以通过这四个键名来获取目录名、完整的文件名、文件扩展名和文件名的值。

语法:

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
参数:

path 要解析的路径。
options 如果指定了,将会返回指定元素;它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION 或 PATHINFO_FILENAME。 如果没有指定 options 默认是返回全部的单元。
实例:

<?
/* 作者:jsred http://www.jsred.com */
$test = pathinfo("http://localhost/test/index.php");
print_r($test);
?>
结果如下

Array
(
[dirname] => http://localhost/test //url的路径
[basename] => index.php //完整文件名
[extension] => php //文件名后缀
[filename] => index //文件名
)

获取目录则可以这样解决:

$savepath=pathinfo("http://localhost/test/index.php");
$savepath=basename($savepath['dirname']);
echo $savepath;

运行结果:

test
上一篇:array_column函数低于PHP5.5之下的替代方法
下一篇:Unable to find the wrapper "https"错误的解决办法
共有:条评论信息评论信息
发表评论
姓 名: 验证码: