2011-12-18 36 views
0

什麼是檢查圖像文件類型的更有效的方法?高效的PHP檢查提交的圖像格式

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")) { 

這就是我目前正在做的,但它似乎是這樣一個混亂的方式來檢查。陣列?我有點迷路。

回答

1

你可能跟我的效率一樣高,但是當涉及到PHP這樣的東西時,它根本就沒有什麼區別 - 只是寫一些更容易閱讀和理解的東西。

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

@Downvoter,請解釋一下自己。 – kba 2011-12-18 05:00:29

0
<?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/>"; 
} 
?> 

擡頭的preg_match。如果preg_match返回0,則不匹配。 使用正則表達式/^image /(jpe?g | gif | png)$ /。

+0

爲什麼這是投票?很多人以前使用正則表達式來解決這個問題。 – 2011-12-18 04:58:13

+1

我沒有downvote,但是使用正則表達式肯定不會比他當前的代碼更有效也不可讀。 – kba 2011-12-18 05:01:24