获取文件扩展名

时间:2012-03-07 05:41:33

标签: php

我正在爆炸“。”获取文件格式和名称:

list($txt, $ext) = explode(".", $name);

问题是某些文件的名称带有点。

我如何在最后一次探索“。”以便我从$name=pic.n2获得$ext=jpgpic.n2.jpg

9 个答案:

答案 0 :(得分:16)

使用pathinfo

$pi = pathinfo($name);
$txt = $pi['filename'];
$ext = $pi['extension'];

答案 1 :(得分:11)

$name = pathinfo($file, PATHINFO_FILENAME);
$ext  = pathinfo($file, PATHINFO_EXTENSION);

http://www.php.net/pathinfo

答案 2 :(得分:5)

使用此

$array = explode(".", $name);
end($array);         // move the internal pointer to the end of the array
$filetype = current($array);

感谢

答案 3 :(得分:1)

使用PHP的pathinfo()函数。

在此处查看更多信息http://php.net/manual/en/function.pathinfo.php

$file_part = pathinfo('123.test.php');

示例:

echo $file_part['extension'];
echo $file_part['filename'];

输出:

PHP 123.test

答案 4 :(得分:1)

使用Pathinfo或mime_content_type获取文件类型信息

$filetype = pathinfo($file, PATHINFO_FILENAME);

$mimetype = mime_content_type($file);

答案 5 :(得分:1)

<?php
$path = 'http://www.mytest.com/public/images/portfolio/i-vis/abc.y1.jpg';
echo $path."<br/>";
$name = basename($path);
$dir = dirname($path); 
echo $name."<br/>";
echo $dir."<br/>";
$pi = pathinfo($path);
$txt = $pi['filename']."_trans";
$ext = $pi['extension'];
echo $dir."/".$txt.".".$ext;
?>

答案 6 :(得分:0)

您可以将自己的功能编写为

  

function getExtension($ str){

     

$ i = strrpos($ str,“。”);

     

if(!$ i){return“”; }

     

$ l = strlen($ str) - $ i;

     

$ ext = substr($ str,$ i + 1,$ l);

     

返回$ ext;

     

}

答案 7 :(得分:0)

您可以尝试这样的事情:

<?php
$file = 'a.cool.picture.jpg';

$ext = substr($file, strrpos($file, '.')+1, strlen($file)-strrpos($file, '.'));
$name = substr($file, 0, strrpos($file, '.'));
echo $name.'.'.$ext;
?>

关键函数是strrpos(),它查找字符的最后一次出现(在本例中为“。”)和返回子字符串的substr()。你找到了最后一个“。”在文件中,子字符串。希望有所帮助。

答案 8 :(得分:0)

最好使用上述解决方案之一,但也有使用爆炸功能的解决方案:

$filename = "some.file.name.ext";
list($ext, $name) = explode(".", strrev($filename), 2);
$name = strrev($name);
$ext = strrev($ext);

此解决方案的作用如下:
1.反向字符串,所以它看起来像:txe.eman.elif.emos
2.爆炸它,你会得到类似的东西:$ ext =&#34; txe&#34;,$ name =&#34; eman.elif.emos&#34;
3.反转每个变量以获得正确的结果