如何从php中所有文件的文件夹目录中仅获取视频文件?

如何从php中所有文件的文件夹目录中仅获取视频文件?,php,scandir,Php,Scandir,我在“uploads/video/”目录中有一些视频、图像和文本文件。 在这里,我使用scandir获取所有文件,但我只需要该文件夹中的视频 示例代码: $video_dir = 'uploads/video/'; $video_array = scandir($video_dir); unset($video_array[0]); unset($video_array[1]); echo "<pre>"; print_r($video_array); echo "<

我在“uploads/video/”目录中有一些视频、图像和文本文件。 在这里,我使用
scandir
获取所有文件,但我只需要该文件夹中的视频

示例代码:

$video_dir    = 'uploads/video/';
$video_array = scandir($video_dir);

unset($video_array[0]);
unset($video_array[1]);

echo "<pre>";
print_r($video_array);
echo "</pre>";
我只需要视频文件。删除文本、mp3、jpg等文件:

<?php
foreach (glob("*.mp4") as $filename) {
    echo "$filename - Size: " . filesize($filename) . "\n";
}
# or:
$video_array = glob("*.mp4");
?>
感谢您的更新。

您可以使用
glob()


请参见此处。

我相信函数
pathinfo
应该可以帮助您解决问题。


您可以使用
mime\u content\u type
检查文件类型

假设是这样的:


此外,这可能不是很快,可能无法检测到所有可能的(奇怪的)视频文件(因为它使用
magic.mime
)。但这可能在没有文件扩展名数组的情况下工作,并且还会查看文件本身而不是文件名

查看文件名并确定扩展是否与视频相关。所以、、和/或可能意味着我需要检查每个文件是否为视频格式?它仅适用于.mp4视频格式。我想要所有的视频,比如mov,flv,etc@RamaLingam:很高兴能提供帮助:-)我可以只获取视频而不指定.mp4、.flv、*.mov吗?可能吗?假设我添加了.avi格式的视频,那么我将无法获得.avi格式的视频。@RamaLingam:你的确切意思是什么?它工作正常。但是没有$video\u ext是可能的吗?是的,只需将数组(…..)中的
更改为
pathinfo($path,pathinfo\u EXTENSION)==“mp4”
Array ( [2] => ADD.mp4  [6] => Phen.mp4 [7] => REM.mp4) 
<?php
foreach (glob("*.mp4") as $filename) {
    echo "$filename - Size: " . filesize($filename) . "\n";
}
# or:
$video_array = glob("*.mp4");
?>
$video_array = glob('uploads/video/{*.mp4,*.flv,*.mov}', GLOB_BRACE);
<?php
$videos = array();
$video_ext = array('mp4', 'mpeg');
foreach ($video_array as $path) {
  if (in_array(pathinfo($path,  PATHINFO_EXTENSION), $video_ext)) {
  //less general, but will work if you know videos always end in mp4
  //if (pathinfo($path, PATHINFO_EXTENSION) == "mp4") {
    $videos[] = $path;
  }
}
$videos = array();
$dir = 'uploads';
$files = scandir($dir);
foreach($files as $file) {
   $filepath = $dir . '/' . $file;
   if(is_file($filepath)) {
       $contentType = mime_content_type($filepath);
       if(stripos($contentType, 'video') !== false) {
           $videos[] = $file;
       }
   }
}