PHP preg_match请帮忙。很简单

时间:2010-02-25 16:09:31

标签: php security preg-match

如何添加到允许的项目列表(gif$|jpg$|png$|jpeg$)

进入以下代码

$regexp = "/[0-9a-zA-z\.]/";
if (preg_match($regexp, $imageInput))

另外如何添加排除列表,例如阻止人们卸载.exe文件等。

由于

修改

我用以下代码修复了它

有关如何改善它的任何建议?

$regexp = "/^[a-zA-z0-9._-]+(gif|jpg|png|jpeg)/";

3 个答案:

答案 0 :(得分:4)

使用肯定列表:

/^[0-9a-zA-z\.]+\.(gif|jpg|png|jpeg)$/

或否定前瞻:

/^[0-9a-zA-z\.]+\.(?!exe$)[a-z]+$/

肯定列表是更安全但更具限制性的选项。

答案 1 :(得分:1)

将您的正则表达式更改为/([0-9a-zA-z\.])(gif|jpg|png|jpeg)$/,这只会允许您指定的扩展程序。

答案 2 :(得分:1)

尝试:

$regexp = "/^[0-9a-zA-z\.]+\.(jpg|gif|png)$/";

停止模式使用'/.(exe|cmd|bat|sh)$/'然后使用if(!preg_match($pattern, $text))