Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取文件扩展名的PHP函数_Php_File Upload_Filenames_Deprecated_File Extension - Fatal编程技术网

获取文件扩展名的PHP函数

获取文件扩展名的PHP函数,php,file-upload,filenames,deprecated,file-extension,Php,File Upload,Filenames,Deprecated,File Extension,有人能帮我改变这个脚本使用preg_split(推荐用php.net替代)而不是不再使用的split。此函数用于获取变量$filename中任何上载文件的文件扩展名 function findExtension ($filename) { $filename = strtolower($filename) ; $exts = split("[/\\.]", $filename) ; $n = count($exts)-1; $exts = $exts[$n]; return $ext

有人能帮我改变这个脚本使用preg_split(推荐用php.net替代)而不是不再使用的split。此函数用于获取变量$filename中任何上载文件的文件扩展名

function findExtension ($filename)
{
   $filename = strtolower($filename) ;
   $exts = split("[/\\.]", $filename) ;
$n = count($exts)-1;
$exts = $exts[$n];
return $exts;
}
您只需使用:


你为什么不使用这个函数:或者这个函数:

也可以使用explode

function findExtension ($filename)
{
   $filename = strtolower($filename) ;
   $exts = explode(".", $filename) ;
   $n = count($exts)-1;
   $exts = $exts[$n];
   return $exts;
}

如果文件扩展名是唯一需要的部分:

function GetExt($filename) {
    return (($pos = strrpos($filename, '.')) !== false ? substr($filename, $pos+1) : '');
}

您可以直接使用,而不是
split
。因为您只需要扩展名,所以没有理由按
/
拆分,只需按点拆分并获取最后一个元素。

我更喜欢使用“strrchr”函数获取字符串中最后出现的“.”


function get_file_extension($file_name)
{
  return substr(strrchr($file_name,'.'),1);
}

也许是这样的

$string = "some/path_to_a_file.txt";
$pattern = preg_split('/\./', $string, -1, PREG_SPLIT_OFFSET_CAPTURE); 

我的代码将提供文件扩展名,删除查询字符串<代码>路径信息还返回带字符串的扩展名。因此,如果您想知道确切的文件名,请使用我的代码:

$filename = 'http://doamin/js.jquery.min.js?v1.1.11';    
preg_replace('/\?.*/', '', substr(strrchr($filename, '.'), 1));

// output: js

似乎“explode”可能是查找文件扩展名的标准。感谢这是一个更容易理解“爆炸”函数的方法。谢谢
$filename = 'http://doamin/js.jquery.min.js?v1.1.11';    
preg_replace('/\?.*/', '', substr(strrchr($filename, '.'), 1));

// output: js