2017-04-22 79 views
-3
<?php 
    if($row['top_pic'] == ""){ 
    echo "<img src='images/img.png' class='imimg1'>"; 
    } else { 
    echo "<img src='images/".$row['top_pic']."' class='imimg1'>"; 
    } 
?> 

需要改變這如果(這個文件的圖像){顯示它}否則{顯示視頻}如果(COL == 「」){顯示圖像}否則{顯示視頻}

+1

您打算如何檢查文件是否爲圖像或視頻?通過使用文件擴展名?如果是這樣,這可能是危險的,因爲它可以很容易被欺騙,而是檢查'MIME'類型。你的問題並不清楚,你可能想要重述它。 –

+0

請儘量控制您的縮進。你在這裏得到的這種風格是極具誤導性的。你也可以用'$ row ['top_pic'] ||來大量簡化它'img.png'而不是有兩個80%類似的代碼塊。 – tadman

回答

0

你可以與此獲取文件擴展名:

$file_extension = substr(strrchr($file_name ,'.'),1); 

然後做一些開關:

switch ($file_extension) { 
    case "mp4": 
     echo "You have a video"; 
     break; 
    case "png": 
     echo "You have an image!"; 
     break; 
    case "jpg": 
     echo "You have an image!"; 
     break; 
    default: 
     echo "You have an unsupported file extension "; 
} 

或者只是

if ($file_extension == "png") { 

echo "<img src="">" 
} else { 
<video></video> 
} 
+0

是的,是的,但我寧願檢查MIME類型,以防止嚴重命名的文件擴展名被視爲圖像。也許OP對你的答案更舒適。 –

+1

通過Ops代碼/問題來判斷,我不認爲他知道什麼是MIME類型,而且這個代碼對他/她來說可能更舒適。 – getl0st

0

您可以使用http://php.net/manual/en/function.mime-content-type.php來獲取文件MIME類型並檢查它是否爲圖像。進行有效默劇的數組,並檢查文件的MIME是這個數組中:像

//File name 
$file='images/'.$row['top_pic']; 

//allowed image mime type 
$imagesMimes=['image/gif','image/jpg','image/png','image/jpeg']; 

//if the file exist and is allowed 
if(file_exist($file) && in_array(mime_content_type($file),$imagesMimes)){ 
    //do your magic 
} 

PS:如果你看到一些有關的功能被棄用,看到這個線程:Why is mime_content_type() deprecated in PHP?

未經測試,只是在我頭上。