📄 scan.php
字号:
<?php // /home/username/foo/public_html/ $dir = $_SERVER['DOCUMENT_ROOT']; $include = '/\.(php|shtml|html|htm|shtm|cgi|txt|doc|pdf|rtf|xls|csv)$/'; $exclude = ''; $dirinclude = ''; $direxclude = '/(^|\/)[._]|htmlarea/'; // Exclude the htmlarea tree by default $hash = ''; foreach(explode(',', 'dir,include,exclude,dirinclude,direxclude') as $k) { if(isset($_REQUEST[$k])) { if(get_magic_quotes_gpc()) { $_REQUEST[$k] = stripslashes($_REQUEST[$k]); } $hash .= $k . '=' . $_REQUEST[$k]; $$k = $_REQUEST[$k]; } } if($hash) { session_start(); if(!isset($_SESSION[sha1($hash)])) { ?> [ ]; <?php exit; } } function scan($dir, $durl = '') { global $include, $exclude, $dirinclude, $direxclude; static $seen = array(); $files = array(); $dir = realpath($dir); if(isset($seen[$dir])) { return $files; } $seen[$dir] = TRUE; $dh = @opendir($dir); while($dh && ($file = readdir($dh))) { if($file !== '.' && $file !== '..') { $path = realpath($dir . '/' . $file); $url = $durl . '/' . $file; if(($dirinclude && !preg_match($dirinclude, $url)) || ($direxclude && preg_match($direxclude, $url))) continue; if(is_dir($path)) { if($subdir = scan($path, $url)) { $files[] = array($url, $subdir); } } elseif(is_file($path)) { if(($include && !preg_match($include, $url)) || ($exclude && preg_match($exclude, $url))) continue; $files[] = $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)) { $js = array(); foreach($var as $k => $v) { $js[] = to_js($v, $tabs + 1); } return "[\n" . tabify(implode(",\n", $js), $tabs) . "\n]"; } 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));?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -