gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 22:53:48 25 4
gpt4 key购买 nike

我想根据数据库提供的 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:

我又试了一次,这是我生成的代码的另一个版本。尽管如此,它仍然不起作用,但我觉得这段代码比我提交的前一个代码更接近正确的语法。

<?php
$video = "mp4";
$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 style = "display:none" data-target="uidContent"><?php echo $row['uidContent']; ?></td>
<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><?php if( strpos( $video, '$row['uidContent'];' ) !== false ){
echo '<video width="400" controls>
<source src="mov_bbb.mp4" type="video/mp4">
</video>';
} else {
echo '<img src="<?php echo '$row['visualContent']'; ?>"width="100"/>';
}
?></td>

仍在等待我能得到的任何反馈。谢谢。

最佳答案

更新 #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>

关于php - 有没有办法根据格式在表格行中动态显示图像或视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57454072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com