Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
高效的PHP检查提交的图像格式_Php_Arrays_Image_Format - Fatal编程技术网

高效的PHP检查提交的图像格式

高效的PHP检查提交的图像格式,php,arrays,image,format,Php,Arrays,Image,Format,检查图像文件类型的更有效方法是什么 if (($_FILES["file_image"]["type"] != "image/jpg") && ($_FILES["file_image"]["type"] != "image/jpeg") && ($_FILES["file_image"]["type"] != "image/gif") && ($_FILES["file_image"]["type"] != "image/png"))

检查图像文件类型的更有效方法是什么

if (($_FILES["file_image"]["type"] != "image/jpg") &&
  ($_FILES["file_image"]["type"] != "image/jpeg") &&
  ($_FILES["file_image"]["type"] != "image/gif") &&
  ($_FILES["file_image"]["type"] != "image/png")) {

这就是我目前正在做的,但这似乎是一种混乱的检查方式。阵列?我有点迷路了。

你的可能和我的一样高效,但在PHP中,这样的东西不会有任何区别,只要写一些更容易阅读和理解的东西就行了

if (!in_array($_FILES["file_image"]["type"],
    array('image/jpg','image/jpeg','image/gif','image/png')) { ...

查找preg_match。如果preg_match返回0,则它不是匹配项。
使用regex/^image/(jpe?g | gif | png)$/。

为什么投票否决了这一点?很多人以前都用正则表达式来解决这个问题。我没有投反对票,但使用正则表达式肯定不会比他现在的代码更高效,更易读。
<?php
$x = array("image/jpeg", "image/jpg", "image/png" , "image/gif", "image/bmp");
foreach ($x as $a)
{
    echo "$a ".preg_match("/^image\/(jpe?g|gif|png)$/", $a)."<br/>";
}
?>