2017-04-22 80 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?

未经测试,只是在我头上。