Php图像显示问题


Php image show issue

我很困惑!基本上,我有一个包含3个字段的表单,例如:主题、图像、消息所以

(1)如果我上传图像,它应该是显示图像,
(2)如果我不上传图片,它应该只显示主题和消息,没有图片框
(3)如果我没有上传图片,并且消息框中有youtube链接,那么它应该显示视频。**

以下是我的php代码,但我无法解决数字3点!**

<?php 
if(empty($imgname))
{
echo '';
}
elseif(!empty($imgname))
{
echo "<span class='vedio'>";            
echo '<img src="' . $upload_path . '/' . $imgname . '" width="195" height="130" 
style=" background-color:f2f4f6;"  />'; 
    echo "</span>";
}
else
{
    echo "<span class='vedio'>";                
require_once("func.php");   
if (preg_match('%(?:youtube'.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu'.be/)
    ([^"&?/ ]{11})%i', $msg, $match))
        {
            //    echo $video_id = $match[1];
        }       
        echo @get_youtube_embed($video_id = $match[1]);     
        echo "</span>";

}
?>

任何对我更好的想法或解决方案。
Shibbir。

由于前面的if条件,您永远不会进入else语句。在所有情况下,$imgname要么为空,要么不为空。

进一步证明:

if (empty($imgname)) {
    // ... First condition
} else if (!empty($imgname)) {
    // ... Last possible condition
} else {
    // Will never reach here because $imgname will 
    // fall into one of the two of the above conditionals.
}

如果没有完整的上下文,很难添加到您的代码中,但似乎您可能希望在上面的代码之后包含以下内容(不带):

if(!empty($msg) && preg_match('%(?:youtube'.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu'.be/)
([^"&?/ ]{11})%i', $msg, $match)) {
    require_once("func.php"); 
    echo "<span class='vedio'>"; 
    echo @get_youtube_embed($match[1]);     
    echo "</span>";
}