我有一个网站,人们可以在上面上传他们的视频,如果用户上传视频,它会在他们的文件夹中创建一个名为 videos
的新文件夹,例如user/Someone/videos/videoname
并且在 videos
文件夹中有用户上传的所有视频。然后它将视频插入数据库。这很好用,但是当我尝试在 HTML video
标签中回显这些视频时,我遇到了问题。由于用户可以上传更多视频,我创建了一个名为 $url
的 array
。然后我选择那些属于该用户的 videos
($sql = "SELECT * FROM videos WHERE user=?";
)。然后,我将每个视频项推送到该 $url
数组,并使用 foreach
循环回显视频。这里出了点问题。存在重复,因此一个视频将被回显更多次并且缺少网址。
代码:
$echo_videos = "";
$items = "";
$url = array();
$sql = "SELECT * FROM videos WHERE user=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$u);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
$name = $row["video_file"];
$items .= "user/$u/videos/$name";
array_push($url, $items);
foreach ($url as $key) {
$echo_videos .= '<video width="400" controls><source src="'.$key.'"></video>';
}
}
PS:也许 $items
变量也应该是一个数组,但这样我就无法将一个数组推送到另一个数组。
最佳答案
为什么不直接回显文件名
while($row = $result->fetch_assoc()){
echo '<video width="400" controls><source src="user/'.$u.'/videos/'. $row["video_file"].'">
</video>';
}
关于php - 在 while 循环中使用 foreach 循环并回显值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46141891/