使用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 实现你想要实现的目标!
第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 。
		文章版权声明:除非注明,否则均为JXLOG原创文章,转载或复制请以超链接形式并注明出处。
	
 
					

 
		 
		 
		 
		 
		 
		 
		 
		
 
	
还没有评论,来说两句吧...