首页 > 解决方案 > 如何在 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/”

标签: phphtml

解决方案


为此,我设置了两个单独的数组。

一个只包含照片,一个只包含视频。

我所有的文件都有匹配的名称,所以$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>';
}
?>

推荐阅读