[ ]; $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)); ?>