what is the best way, to check if a given directory contains a *.png a *.mp4 and so on? I only want a true getting returned, if all these filetypes are inside the directory.
This is my current code, which does not work. if I use only one filetype it works, but does not return a false:
var_dump(glob($video_dir.'*.txt,.jpg', GLOB_BRACE));
Thanks
// 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)
When using GLOB_BRACE
you have to use the brackets {}
. The following code should work:
var_dump(glob($video_dir.'{*.txt,*.jpg}', GLOB_BRACE));