php - 如何在 php 中查找并列出所有视频文件和缩略图?
问题描述
我有一个装满 mp4/m4v 视频(400+ 并且还在增长)的 linux 服务器,并且想创建一个所有视频的列表。有点类似于 HBO Go。
我正在尝试完成的一个示例是扫描当前目录并列出所有视频 mp4/m4v 文件,其中直接链接嵌入到图像中。
文件示例:
Dir1
CurrentDirectoryLister.php
Halloween (2018).mv4
Halloween (2018).png
Pacific Rim.mp4
Pacific Rim.png
Dir2
CurrentDirectoryLister.php
NewMovie Here.mp4
NewMovie Here.png
因此,用户将单击指向 Dir1 的链接,该链接将打开 CurrentDirectoryLister.php 并提供图像“Pacific Rim.png”和“Halloween (2018).png”。当他们单击图像时,它会将他们带到电影页面“Dir1/Pacific Rim.mp4/”
解决方案
为此,我设置了两个单独的数组。
一个只包含照片,一个只包含视频。
我所有的文件都有匹配的名称,所以$movies[1]
和$images[1]
(Pacific Rim.mp4 && Pacific Rim.png)。
另一个用户在这里进一步解释
<?php
$movies = glob('./*.{mp4,m4v}', GLOB_BRACE);
$images = glob('./*.{jpeg,jpg,png}', GLOB_BRACE);
$subtitles = glob('./*.{srt}', GLOB_BRACE); #To be used later.
foreach ($images as $image) {
$lookup[pathinfo($image, PATHINFO_FILENAME)] = $image;
}
foreach ($movies as $movie) {
$image = $lookup[pathinfo($movie, PATHINFO_FILENAME)] ?? 'default.jpg';
echo '<a href="' . $movie . '">
<img src="' . $image . '" style="width:300px;height:350px;border:0;">
</a>';
}
?>
推荐阅读
- r - Plot stretches past axis limit in R when using barplot() with ylim argument
- android - 键盘隐藏和覆盖对话框
- mongodb - React Native Expo:我如何存储快照?
- angular - angular6材质事件发射器不工作
- angular - VSCode 1.26.1,工作区/虚拟文件夹 + Angular App + TFS
- java - PopupMenu 有时不显示在屏幕上
- c# - C#获取表单flash内容的截图
- web-crawler - StormCrawler 的 default-regex-filters.txt
- firebase - Flutter:如何将pdf文件上传到firebase存储?
- ffmpeg - 下载chrome 69版时ffmpeg视频文件不完整错误