如何与in_array进行不区分大小写的匹配?

时间:2013-01-27 01:56:48

标签: php

如果我们有

$allowimg = array('gif','bmp','jpg','png','jpeg','tif','tiff','tga','psd');

如果我们输入此代码

,想要使用它上传中心
if(in_array($filetype,$allowimg)){
//pic
$error = 0;
$filedoc = 'pic';
}
else{ echo 'bad file type!';}

如果用户上传my.PNG
它的运行Else cuz PNG不是== png for php
任何人都可以帮我这个吗? 以及如何保护文件上传?

$filename = explode('.',$nn);

好吗?那么如果用户上传了什么呢 my.pic.jpg?

2 个答案:

答案 0 :(得分:3)

只需strtolower()文件类型!

if(in_array(strtolower($filetype),$allowimg)){
//pic
$error = 0;
$filedoc = 'pic';
}
else{ echo 'bad file type!';}

问题的第二部分

虽然我建议你为每个问题提出一个新问题,而不是在一个任务中提出一组问题,但这里是我通常从字符串中获取文件名的方法。

$ext = pathinfo($filename, PATHINFO_EXTENSION);

pathinfo()函数提供了抛出路径的信息。您可以选择通过在第二个参数中指定它来获得您想要的字符串。

$ext现在包含文件的扩展名:jpg(可以是JPG JPg等。使用上面的代码来解决该问题。

答案 1 :(得分:0)



if(in_array(strtolower($filetype),$allowimg)){