filter filenames in folder
Posted: Thu Nov 11, 2004 8:07 am
With the code below, I can manipulate to either list files that only has "sample" in the file name or list everything but "sample".
How can I apply 2 filters? I want to list everything except "sample" and "perm" in the filename. Thanks.
How can I apply 2 filters? I want to list everything except "sample" and "perm" in the filename. Thanks.
Code: Select all
<?
$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '<slideshow><settings><image_folder></image_folder><time>3</time><fade>1</fade><repeat>true</repeat><captions>false</captions></settings><images>';
create_tree("ssimages", '/^sample/');
function create_tree($file_dir, $filter = '') {
global $xml;
if ($handle = @opendir($file_dir))
{
$list = array();
while (false !== ($file = @readdir($handle))) {
if ($file != "." && $file != "..") {
if( !empty($filter) && !is_dir($file_dir . '/' . $file) )
//if( !preg_match($filter, $file) ) // get only "sample"
if( preg_match($filter, $file) ) //everything but sample
continue;
$list[] = $file;
}
}
foreach($list as $file) {
if( is_dir($file_dir . '/' . $file) ) {
create_tree($file_dir . "/" . $file, $filter);
}
else
$xml .= '<image>' . '<file>' . $file_dir . '/' . $file . '</file>' . '<caption>' . '</caption>' . '</image>' . "\n";
}
closedir($handle);
}
}
$xml .= '</images></slideshow>';
echo $xml;
?>