2

特定のディレクトリに *.png や *.mp4 などが含まれているかどうかを確認する最善の方法は何ですか? これらすべてのファイルタイプがディレクトリ内にある場合にのみ、true が返されるようにします。

これは私の現在のコードで、動作しません。ファイルタイプを 1 つだけ使用すると機能しますが、false は返されません。

var_dump(glob($video_dir.'*.txt,.jpg', GLOB_BRACE));

ありがとう

4

2 に答える 2

4
// function to find files with specified extensions in a folder
function has_the_files( $dir, $extensions = array() ) { 
    if ( empty( $extensions ) || ! is_array( $extensions ) || ! is_dir( $dir ) ) return false;
    foreach ( $extensions as $ext ) if ( count( glob( $dir . '/*.' . $ext ) ) > 0 ) $found[$ext] = 1;
    return ( count( $found ) == count( $extensions ) ) ? true : false;
}

// use it like
$dir = dirname(__FILE__) . '/images'; //absolute path to the directory you wanna test
$extensions = array('jpg','png'); // an array containing the file extensions you seek for
var_dump( has_the_files( $dir, $extensions ) ); // outputs: bool(false)  
于 2012-05-10T21:51:53.997 に答える
1

使用するときGLOB_BRACEは、ブラケットを使用する必要があります{}。次のコードが機能するはずです。

var_dump(glob($video_dir.'{*.txt,*.jpg}', GLOB_BRACE));
于 2012-05-10T21:46:17.047 に答える