2

检查给定目录是否包含 *.png 和 *.mp4 等的最佳方法是什么?如果所有这些文件类型都在目录中,我只想要一个真正的返回。

这是我当前的代码,它不起作用。如果我只使用一种文件类型,它可以工作,但不会返回错误:

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 回答