2

次のスクリプトがあります。

function listFolderFiles($dir){
    $ffs = scandir($dir);
    echo '<ol>';
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
            echo '</li>';
        }
    }
    echo '</ol>';
}
listFolderFiles('upload');

私の質問は、ファイルがビデオ (mp4 または mov) タイプであることを検出したいのですが、$ff がビデオ タイプであるかどうかを検出するにはどうすればよいですか?

4

10 に答える 10

10
    // Type contains video/mp4,video/avi,video/mpeg,video/mpg etc
    if(preg_match('/video\/*/',$_FILES['add_image_image']['type'])): 
        echo "THIS IS A VIDEO FILE";
    else:
          echo "NOT A VIDEO FILE";           
    endif;
于 2015-08-22T06:21:30.590 に答える
8
if(end(explode(".",$ff)) =="mp4")
{
echo "its an mp4 movie";
}

拡張機能の大文字と小文字を区別しないバージョンについては、どうぞ

<?php
$ff="abc.MP4";
if(strtolower(end(explode(".",$ff))) =="mp4")
{
echo "its an mp4 movie";
}
?>
于 2013-08-19T06:46:09.200 に答える
2

あなたはで達成することができますpreg_match

if(preg_match('/^.*\.(mp4|mov)$/i', $filename)) {
    echo $filename;
}

次のような別のビデオ ext を追加できます。(mp4|mov|mpg|mpeg|wmv|mkv)

于 2013-08-19T06:48:42.797 に答える
0
$fileType = exec( 'file --mime-type '.escapeshellarg($filePath)); //e.g. output -> /tmp/somefile.mov: video/quicktime
$fileType = substr($fileType, strpos($fileType, ": ") + 2); //strip away file path -> video/quicktime
$fileType = substr($fileType, 0,strpos($fileType, "/")); //strip away whatever video type -> video
if ($fileType == 'video') $fileType = 'im a video!';

このコードは、UNIX の「file」コマンドをオプション --mime-type とともに使用して、解析を容易にするために出力を最小化します。出力を解析するより良い方法があるかどうかはわかりません。

また、チェックしているファイルの読み取り権限があることを確認してください。

于 2015-08-10T05:12:50.637 に答える
0

アップロードするファイルの MIME タイプを取得し、以下のようにタイプを確認します。

$mime = $file->getMimeType;
$videoJS = array('video/mp4','video/ogg','video/webm');

if(array_search($mime, $videoJS) !== false) {
    //do upload
}
于 2013-08-19T06:56:56.283 に答える