检查php是否包含不同的文件类型

时间:2012-05-10 21:34:53

标签: php glob

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

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

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

由于

2 个答案:

答案 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));