2012-02-12 93 views
0

我很困惑!基本上我有一个3领域的表单:主题,图像,信息。 所以Php图片显示问题

(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。

+0

那么..当你尝试实现3号时究竟发生了什么? – Josh 2012-02-12 06:12:16

+0

@Josh,现在没有显示任何YouTube视频。 – 2012-02-12 06:14:41

+0

输出什么?什么?错误?在你的测试用例中存储在'$ imgname'或'$ msg'中的是什么? – Josh 2012-02-12 06:19:01

回答

1

由于前面的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>"; 
} 
+0

Wee,我明白@Josh。 – 2012-02-12 06:51:05

+0

太棒了!我很乐意提供帮助。 :) – Josh 2012-02-12 06:51:45