2016-01-21 83 views
3

我在「uploads/video /」目錄中有一些視頻,圖片和文本文件。 在這裏我得到所有文件使用scandir,但我只想從該文件夾的視頻。如何從php中的所有文件的文件夾目錄中只獲取視頻文件?

示例代碼:

$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>"; 

獲得結果:

Array ([2] => ADD.mp4 [3] => COO_Notes.txt [4] => Carefree.mp3 [5] => Circus Tent.mp3 [6] => Phen.mp4 [7] => REM.mp4 [8] => images (9).jpg [9] => images.jpg [10] => test.php) 

我只需要的視頻文件。刪除文本,MP3,JPG等文件:

Array ([2] => ADD.mp4 [6] => Phen.mp4 [7] => REM.mp4) 

感謝您的更新。

+0

你看看文件名並決定擴展是否與視頻有關。所以,[foreach](http://php.net/foreach),[pathinfo](http://php.net/pathinfo)和/或可能[array_filter](http://php.net/array_filter) –

+0

意味着我需要檢查每個文件是否是視頻格式? –

回答

4

您可以使用​​3210:

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

爲了獲得多種格式,只需把擴展在大括號並添加參數GLOB_BRACE

$video_array = glob('uploads/video/{*.mp4,*.flv,*.mov}', GLOB_BRACE); 

看到它在這裏PHP.net

+0

它只適用於.mp4視頻格式。我想獲得像MOV,FLV等所有視頻 –

+0

我需要檢查每個文件是否是視頻格式? –

+0

@RamaLingam:查看我的更新回答(底部) – Jan

2

我相信功能pathinfo應該幫助你。 http://php.net/manual/en/function.pathinfo.php

<?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; 
    } 
} 
+0

它工作正常。但沒有$ video_ext是可能的? –

+0

是的,只要將'in_array(....)'改爲'pathinfo($ path,PATHINFO_EXTENSION)==「mp4」' – Scott

2

您可以檢查文件類型與mime_content_typehttp://php.net/manual/en/function.mime-content-type.php

假定這將是這樣的:

$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; 
     } 
    } 
} 

而且這可能不是非常快,也許不會檢測所有可能的(奇怪)視頻文件(因爲它使用magic.mime)。但是,這可能沒有文件擴展名的數組,也會看文件本身,而不是文件名。

相關問題