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 |