首页>>后端>>php->php获取文件后缀(php获取文件夹下所有文件名)

php获取文件后缀(php获取文件夹下所有文件名)

时间:2023-12-07 本站 点击:0

php截取文件扩展名

解决楼主的问题的方法就是,分开写代码,即:

$filearr = split(".",$filename);

$filetype = end($filearr);

split 函数用来分割字符串的时候,基本等同于函数 preg_grep,分割表达式可以是一个正则表达式,也可以是一个普通字符串,所以本身的执行效率很低,这一点你要记得……

所以,实现你现在的这个需求的话,最好用explode函数,使用普通字符作为分割表达式……

但是也的确如楼上所说,split 函数(PHP里)已经弃用,你可以使用 preg_match、preg_match_all 、preg_grep 等使用正则表达式作为分割的函数来替代。

就整个你的需求而言,你的思路还不很好,当一个文件名是【a.b.c.d.e.f.g.php】的时候,程序要浪费多余的资源来分割其实你不用的a、b、c……,

所以要简单满足你取后缀名的需求的代码应该是:

$filetype=substr(strrchr($filename,'.'),1);

此外还有:$path_info = pathinfo($filename); $filetype = $path_info['extension']; 其实不是很推荐。

下面比较一下它们各自的执行效率:

设文件名是:aaa.bb.php、循环执行10000次;执行10次取平均值:

split + end :0.067644s

explode + end :0.016251s

pathinfo + ['extension'] :0.018983s

strrchr + substr :0.008611s

【以上文字现场版纯手敲,2012-2-25 10:41,谢谢】

php 验证上传的文件类型为图片,并获得文件的后缀名

以下是我上传了一个图片后显示的 $_FILES['filename']的信息

[filename] = Array

(

[name] = Winter.jpg

[type] = image/jpeg

[tmp_name] = /tmp/php2jw7QX

[error] = 0

[size] = 105542

)

其中type是文件类型的minitype 表示方法,例如普通的HTML的类型是text/html

如果你想用扩展名的方式判断的话可以用以下代码:

?php

#允许的文件扩展名

$allowed_types = array('jpg', 'gif', 'png');

$filename = $_FILES['filename']['name'];

#正则表达式匹配出上传文件的扩展名

preg_match('|\.(\w+)$|', $filename, $ext);

#print_r($ext);

#转化成小写

$ext = strtolower($ext[1]);

#判断是否在被允许的扩展名里

if(!in_array($ext, $allowed_types)){

die('不被允许的文件类型');

}

?

请问:php如何获取数组中图片名称的后缀名呢?

$aa= array ('15.jpg', '5.png');

$bb = array(); // 存放文件以及后缀

foreach($aa as $k=$v){

    $bb[$k]['img']  = $v;

    $bb[$k]['ext'] = getExt($v);

}

print_r($bb);

// 获取文件后缀

function getExt($file){

    return substr(strrchr($file, '.'), 1);

}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/php/17850.html