2013-06-26 33 views
-6

此代碼:陣列,圖像擴展GET變量

$extensions = array('.jpg', '.JPG', '.png' ,'.PNG' ,'.jpeg' ,'.JPEG'); 
$extension = explode(".", $extensions); 
$image = $somepicture."*.".$extension.""); 

如何只顯示有從陣列擴展那些上傳的圖片?

+0

使用'in_array'。 –

+0

$擴展變量是數組。你必須訪問它的最後一個索引來獲得你的擴展(例如「image.png」,你將不得不訪問$ extension [1]) – Darvex

+2

這是一些奇怪的代碼 – TecHunter

回答

1

假如你有文件名的數組:

$files = array('file1.jpg', 'file2.PNG', 'file3.txt'); 

你可能想只有像這樣來篩選圖片:

$extensions = array('jpg', 'jpeg', 'png'); 
$images = array_filter($files, function($file) use ($extensions) { 
    $pos = strrpos($file, '.'); 
    $extension = strtolower(substr($file, $pos + 1)); 
    return in_array($extension, $extensions); 
}); 

(根據php.net上的帖子,pathinfo比ra稍慢w^substr操作)


測試:

print_r($images); 

輸出:

Array 
(
    [0] => file1.jpg 
    [1] => file2.PNG 
) 
+0

非常感謝您解決問題! –

0

在簡單的方式,您可以通過以下方式做到這一點:

<?php 
    $extensions = array('.jpg', '.JPG', '.png' ,'.PNG' ,'.jpeg' ,'.JPEG'); 
    $extension = pathinfo('$file_name'); 
    in_array($extension,$extensions); 
    { 
     $image = $somepicture."*.".$extension.""); 
    } 
?> 
0

語言PHP。示例(文件名擴展名):

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
print $imageFileType; 

結果打印PNG或其他ur圖片擴展名。之前讓你的表單發佈。示例

<form method="post" enctype="multipart/form-data"> 
<input type="file" name="fileToUpload" id="fileToUpload"> 
<input type="submit" value="Upload Image" name="submit"></form>