php - 怎么样过滤掉非图片呢?
大家讲道理
大家讲道理 2017-04-11 10:23:16
0
3
693

现在所有文件都会被当做图片来处理 我希望如果只显示图片 不是图片就不处理 包括改过的拓展名的情况 这里好像也没法用getimagesize啊

$dir = "upload/";
    if (is_dir($dir)){
        if ($dh = opendir($dir)){
        while (($file = readdir($dh))!= false){
            if(!is_dir($file)) {
            }
        }
        closedir($dh);
        }
    }
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(3)
阿神

肯定不能按扩展名来判断,因为扩展名可以修改的.
不管你过来的是文件还是图片,它的路径都是一个字符串对吧!

$url='./1.jpg';
再用getimagesize 去获取这个$url 如果这个路径是一个有效的图片,就会返回一个数组,里面有图片的类型.下面就直接判断就行了.如果不是,就会返回false 并产生 E_WARNING 级的错误.
只要能返回false 就说明这不是图片,就不处理,你想在这跳转还是return看你自己了.

至于这个E_WARNING错误,PHP有设置可以让它不报级别的错误.不会自行百度.更何况当网站上线后,所有的级别错误都得屏闭.

刚刚查了查PHP手册.你用这个函数去判断它的类型更好也更快! exif_imagetype 函数

而且如果类型不是图片,直接返回false ,而且还不会报错误.实用性更加的强.推荐使用!

刘奇

通过判断扩展名或者获取文件的MIME类型来判断,pecl中有一个这个扩展,你可以尝试

http://php.net/manual/zh/book...

巴扎黑

通常根据扩展名判断的话直接截取扩展名,用in_array()判断就行了。
既然说改过扩展名的情况,那就需要获取文件的信息。因此要获取MIME信息。
这方面函数很多,可以使用Fileinfo函数获取。然后再判断。

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!