使用pathinfo函数轻松获取扩展名和文件名

你是否遇到过只想从文件路径中提取文件名或扩展名的情况?

我认为有多种方法,例如使用split分隔符拆分文件路径或使用substr函数提取文件路径。

但是,如果你使用pathinfo函数,那么麻烦很容易就解决了!

什么是pathinfo函数?

什么时候用?

pathinfo函数是以数组形式获取文件路径信息的函数。

能得到什么样的信息呢?就是能只获取index.php这个文件的文件名index,或者只获取扩展名php的函数。

不仅如此,如果你有一个像 /webhome/website/index.php 这样的文件路径,你也可以只提取文件所在的路径,如 /webhome/website 。

尝试使用pathinfo函数

使用 pathinfo 函数并不困难。

让我们看一个示例。

<?php
$info = pathinfo('/ciyawang/com/test/index.php');
var_dump($info);
?>

执行结果

array(4) {
  ["dirname"]=>
  string(17) "/ciyawang/com/test"
  ["basename"]=>
  string(9) "index.php"
  ["extension"]=>
  string(3) "php"
  ["filename"]=>
  string(5) "index"
}

首先,我们将包含文件名的文件路径传递给pathinfo函数。

使用起来并不难,因为您只需将其作为参数传递即可。

我写的是将有关路径的信息保存在$info中作为返回值。

此时返回值是一个数组,可以通过指定具体的键名来带上每条信息。

我认为通过查看执行结果很容易理解

dirname
basename
extension
filename

我想我能够获得四种类型的信息。

如果你从顶部解释,它看起来像这样。

键名内容
dirname不包含文件名的目录路径
basename目录路径之外的文件名
extension仅提取参数中指定文件名的扩展名
filename获取除参数中指定的文件名扩展名之外的文件名

只需调用pathinfo,就能轻松获得这样的信息!

使用pathinfo函数轻松获取扩展名和文件名

这样的文件路径会发生什么?

我试图查看特殊文件路径名返回什么样的结果。

我希望这会帮助你看看你是否可以通过这个 pathinfo 实现你想要实现的目标!

第1部分如果目录路径包含点(.)

例:/fruits/mask.melon/ciyawang.php

执行结果

array(4) {
  ["dirname"]=>
  string(18) "/fruits/mask.melon"
  ["basename"]=>
  string(11) "ciyawang.php"
  ["extension"]=>
  string(3) "php"
  ["filename"]=>
  string(7) "ciyawang"
}

2.如果文件名没有扩展名

示例:/fruits/melon/ciyawang

执行结果

array(3) {
  ["dirname"]=>
  string(13) "/fruits/melon"
  ["basename"]=>
  string(7) "ciyawang"
  ["filename"]=>
  string(7) "ciyawang"
}

3.如果文件名包含两个或多个点(.)

例:/fruits/melon/ciyawang.com.php

执行结果

array(4) {
  ["dirname"]=>
  string(13) "/fruits/melon"
  ["basename"]=>
  string(17) "ciyawang.com.php"
  ["extension"]=>
  string(3) "php"
  ["filename"]=>
  string(13) "ciyawang.com"
}

4.如果文件名不存在(隐藏文件)

例:/fruits/melon/.htaccess

执行结果

array(4) {
  ["dirname"]=>
  string(13) "/fruits/melon"
  ["basename"]=>
  string(9) ".htaccess"
  ["extension"]=>
  string(8) "htaccess"
  ["filename"]=>
  string(0) ""
}

结语

这一次,我解释了获取文件名和扩展名等文件路径信息的pathinfo 。

最后编辑于:2023/03/12作者: 烽烟无限