84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
现在所有文件都会被当做图片来处理 我希望如果只显示图片 不是图片就不处理 包括改过的拓展名的情况 这里好像也没法用getimagesize啊
$dir = "upload/"; if (is_dir($dir)){ if ($dh = opendir($dir)){ while (($file = readdir($dh))!= false){ if(!is_dir($file)) { } } closedir($dh); } }
光阴似箭催人老,日月如移越少年。
肯定不能按扩展名来判断,因为扩展名可以修改的.不管你过来的是文件还是图片,它的路径都是一个字符串对吧!
$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函数获取。然后再判断。
MIME
Fileinfo
肯定不能按扩展名来判断,因为扩展名可以修改的.
不管你过来的是文件还是图片,它的路径都是一个字符串对吧!
$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
函数获取。然后再判断。