介绍
pathinfo 函数可以解析和返回指定文件的路径信息。比如文件目录路径、扩展名等。
函数原型
pathinfo (string $path[, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME]) : mixed
第一个参数,必传,文件路径。
第二个参数,选传,指定返回的元素。未指定时,全部返回。
返回值,根据第二个参数选项,返回指定元素的字符串,或返回一个数组,包含所有的元素。
用法示例
源码一
$myAccessLog = "/data/www/xingchaovv-com/access.log"; var_dump(pathinfo($myAccessLog));
执行结果
array(4) { ["dirname"]=> string(24) "/data/www/xingchaovv-com" ["basename"]=> string(10) "access.log" ["extension"]=> string(3) "log" ["filename"]=> string(6) "access" }
pathinfo 直接返回文件所有信息,其中 dirname 为文件所在目录路径;basename 为文件基础名称,即文件名;extension 为文件扩展名,filename 为文件不含后缀名称。
源码二
var_dump(pathinfo($myAccessLog, PATHINFO_DIRNAME));
执行结果
string(24) "/data/www/xingchaovv-com"
通过指定 PATHINFO_DIRNAME,只返回目录信息。
源码三
$myLogDir = "/data/www/xingchaovv-com/log-202008"; var_dump(pathinfo($myLogDir));
执行结果
array(3) { ["dirname"]=> string(24) "/data/www/xingchaovv-com" ["basename"]=> string(10) "log-202008" ["filename"]=> string(10) "log-202008" }
函数也可以正常解析一个目录路径。无扩展名信息返回。
源码四
$mySiteLog = "/data/www/my-site.access.log"; var_dump(pathinfo($mySiteLog));
执行结果
array(4) { ["dirname"]=> string(9) "/data/www" ["basename"]=> string(18) "my-site.access.log" ["extension"]=> string(3) "log" ["filename"]=> string(14) "my-site.access" }
当文件扩展名为多个时(点分隔),只会认为最后一个为有效扩展名。
源码五
$tmpLog = "./www/.log"; var_dump(pathinfo($tmpLog));
执行结果
array(4) { ["dirname"]=> string(5) "./www" ["basename"]=> string(4) ".log" ["extension"]=> string(3) "log" ["filename"]=> string(0) "" }
当文件只有后缀时,filename 返回为空字符串。
(完)