[ ];
$url, 'children'=>$subdir);
}
}
elseif(is_file($path))
{
if(($include && !preg_match($include, $url)) || ($exclude && preg_match($exclude, $url))) continue;
$files[] = array('url'=>$url);
}
}
}
@closedir($dh);
return dirsort($files);
}
function dirsort($files)
{
usort($files, 'dircomp');
return $files;
}
function dircomp($a, $b)
{
if(is_array($a)) $a = $a[0];
if(is_array($b)) $b = $b[0];
return strcmp(strtolower($a), strtolower($b));
}
function to_js($var, $tabs = 0)
{
if(is_numeric($var))
{
return $var;
}
if(is_string($var))
{
return "'" . js_encode($var) . "'";
}
if(is_array($var))
{
$useObject = false;
foreach(array_keys($var) as $k) {
if(!is_numeric($k)) $useObject = true;
}
$js = array();
foreach($var as $k => $v)
{
$i = "";
if($useObject) {
if(preg_match('#[a-zA-Z]+[a-zA-Z0-9]*#', $k)) {
$i .= "$k: ";
} else {
$i .= "'$k': ";
}
}
$i .= to_js($v, $tabs + 1);
$js[] = $i;
}
if($useObject) {
$ret = "{\n" . tabify(implode(",\n", $js), $tabs) . "\n}";
} else {
$ret = "[\n" . tabify(implode(",\n", $js), $tabs) . "\n]";
}
return $ret;
}
return 'null';
}
function tabify($text, $tabs)
{
if($text)
{
return str_repeat(" ", $tabs) . preg_replace('/\n(.)/', "\n" . str_repeat(" ", $tabs) . "\$1", $text);
}
}
function js_encode($string)
{
static $strings = "\\,\",',%,&,<,>,{,},@,\n,\r";
if(!is_array($strings))
{
$tr = array();
foreach(explode(',', $strings) as $chr)
{
$tr[$chr] = sprintf('\x%02X', ord($chr));
}
$strings = $tr;
}
return strtr($string, $strings);
}
echo to_js(scan($dir));
?>