Jinyun's Notes

没什么天赋,爱好也不多,但愿坚持做些喜欢的事情

0%

PHP 从路径中获取文件的扩展名

201904101212.png

😄这是一道妥妥的字符串操作题呀,源于某道面试题,玩一玩,开心就好。

使用 pathinfo 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
return pathinfo($path, PATHINFO_EXTENSION);
}

或者

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
return pathinfo($path)['extension'];
}

使用 preg_split 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
$array = preg_split('/[\\.]/', $path);

return $array[count($array) - 1];
}

使用 end 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
$array = explode('.', $path);

return end($array);
}

使用 strrchr 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
return substr(strrchr($path, '.'), 1);
}

使用 strrpos 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
return substr($path, strrpos($path, '.') + 1);
}

使用 preg_replace 函数

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
return preg_replace('/^.*\.([^.]+)$/D', "$1", $path);
}

使用 SplFileInfo 类

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

/**
* 从路径中获取文件的扩展名。
*
* @param string $path
*
* @return string
*/
function ext_name(string $path): string
{
return (new \SplFileInfo($path))->getExtension();
}

函数调用:

1
2
3
<?php

echo ext_name($_SERVER['PHP_SELF']);

输出结果:

1
php
本笔记是笔者在学习和工作中的一些整理,如对您有用,请鼓励我继续写作