检查给定目录是否包含* .png a * .mp4等的最佳方法是什么? 如果所有这些文件类型都在目录中,我只想要返回true。
这是我目前的代码,但不起作用。如果我只使用一种文件类型,它可以工作,但不会返回false:
var_dump(glob($video_dir.'*.txt,.jpg', GLOB_BRACE));
由于
答案 0 :(得分:5)
// 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)
答案 1 :(得分:1)
使用GLOB_BRACE
时,您必须使用括号{}
。以下代码应该有效:
var_dump(glob($video_dir.'{*.txt,*.jpg}', GLOB_BRACE));