为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法根据格式在表格行中动态显示图像或视频?

有没有办法根据格式在表格行中动态显示图像或视频?

PHP
HUX布斯 2021-11-19 16:47:55
我想根据数据库提供的 src 进行图像或视频预览,然后将此预览显示在表中。下面的代码是完整的表格:<table id="datatable" class="table table-hover table-bordered" style="width:100%">  <thead>      <tr>          <th>Theme</th>          <th>Visual Idea</th>          <th>Caption</th>          <th>Date</th>          <th>Visual</th>      </tr>  </thead>  <tbody>      <?php          $table  = mysqli_query($conn ,"SELECT * FROM content WHERE uidCompany='" . $_SESSION[ "userCid" ] . "' && postStatus='Active'");          while($row  = mysqli_fetch_array($table)){ ?>      <tr id="<?php echo $row['uidContent']; ?>">          <td width="100" data-target="themeContent"><?php echo $row['themeContent']; ?></td>          <td width="300" data-target="visualIdeaContent"><?php echo $row['visualIdeaContent']; ?></td>          <td width="600" data-target="captionContent"><?php echo $row['captionContent']; ?></td>          <td width="100" data-target="dateContent"><?php echo $row['dateContent']; ?></td>          <td><img src="<?php echo $row['visualContent']; ?>" width="100" /></td>      </tr>      <?php }          ?>  </tbody></table>我想根据提供的文件扩展名动态更改的是:<td><img src="<?php echo $row['visualContent']; ?>" width="100"/></td>我自己尝试过使用 strpos 检查 $row['visualContent'] 是否包含任何扩展名,但由于我对此不是很有经验,所以我没有看到成功。我试过的:<?php$image = "jpg jpeg png";$video = $row['visualContent'];   if( strpos( $image, $video ) !== false) {   echo "<td><video width="200" height="200" controls>   <source src="<?php echo $row['visualContent']; ?>" type="video/mp4">   </video></td>";   } else {     echo "<td><img src="<?php echo $row['visualContent']; ?>" width="100"/></td>";     }?>我可能离解决方案很近,也可能离我很远,这就是我来这里从专家那里获得指导的原因。期待您的回复。
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

在更新 #1 之后,您已经非常接近了!我的英语不是很好,所以我假设您想检查它是视频还是图像并相应地更改 HTML 标记输出。


strpos ( https://www.php.net/manual/en/function.strpos.php )的语法是strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ).


因此,通过执行strpos( $video, '$row['uidContent'];' ),您会在“mp4”中找到您的 src,这将始终是错误的。此外,您不需要引号、回声和分号$row['uidContent'],因为您想将其用作变量。再次查找基本语法会很棒:)


我看到你有$row['uidContent']和$row['visualContent']。我假设visualContent包含媒体 src,所以我在我的建议答案中使用它。如果我错了,请使用 $row 的示例数据更新您的问题。


建议代码:


// refresher: $video = 'mp4';

<td><?php if( strpos( $row['visualContent'], $video) !== false ) {

              echo "<video width='400' controls>

              <source src='{$row['visualContent']}' type='video/mp4'>

              </video>";

          } else {

            echo "<img src='{$row['visualContent']}' width='100'/>";

          }

    ?></td>


查看完整回答
反对 回复 2021-11-19
  • 1 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信