단일 index.php 로 PHP 임의의 단계 폴 더 옮 겨 다 니 기(Zjmainstay 원본)
8901 단어 PHP 임의의 등급폴 더 옮 겨 다 니 기
<?php
header('Content-Type:text/html charset:utf-8');
date_default_timezone_set('PRC');
$rootDir = 'listFile'; // ,
// base_url :
// , , .htaccess
// :
// .htaccess:
//#RewriteBase /
// $base_url = 'http://www.listfile.com/';
// :
// .htaccess:
//RewriteBase /listFile/
$base_url = 'http://www.test.com/' .$rootDir .'/';
//
if(empty($_GET['return'])){
$dir = '.';
}else {
$dir = trim(array_pop(explode($rootDir,$_GET['return'])),'/');
if(empty($dir)) $dir = '.';
else $dir = './' . $dir;
}
// echo $dir; //
//
$pattern = '*'; // '*' , , *.jpg jpg ,*.{jpg,png} jpg png , !!
$skip = '*.skip'; // .skip ( “ .skip”), , *.php php
$files = scandir_through($dir,$pattern,$skip,false);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>List Files</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<script type="text/javascript" src="<?php echo $base_url . 'jquery-1.6.2.min.js' ?>"></script>
<script type="text/javascript" src="<?php echo $base_url . 'main.js' ?>"></script>
<link rel="stylesheet" rev="stylesheet" href="<?php echo $base_url . 'base.css' ?>" type="text/css" />
</head>
<body>
<script type="text/javascript">
var base_url = '<?php echo $base_url ?>';
// return , , autoClickUrl , URL。
var autoClickUrl = '<?php echo (strpos($_SERVER['REQUEST_URI'],'?return') !== false)?array_shift(explode('?',$_SERVER['REQUEST_URI']))."baddir/":'';?>';
</script>
<?php
//
$filetypes = array(
'txt' => 'txt ',
'dir' => ' ',
'php' => 'php ',
'css' => 'css ',
'js' => 'js ',
'doc' => 'Word ',
'xls' => 'Excel ',
'jpg' => 'jpg ',
'gif' => 'gif ',
'png' => 'png ',
'mp3' => 'mp3 ',
'zip' => 'zip ',
'rar' => 'rar ',
'htm' => 'htm ',
'html' => 'html ',
'undefined'=>' ',
);
//
$skipfiles = array(
'index.php',
'index.html',
'jquery-1.6.2.min.js',
'main.js',
'base.css',
);
//
echo "<div id='back'><a href=''><img src='{$base_url}images/dir.jpg'/>..</a></div>";
echo "<div id='container'>";
echo "<div class='file text-center'><div class='filename border-right'> </div><div class='filesize border-right'> </div>";
echo "<div class='filetype border-right'> </div><div class='filemtime'> </div></div>";
foreach($files['filename'] as $index => $file){
if(in_array($file,$skipfiles)) continue;
if(is_null($filetypes[$files['ext'][$index]])) $filetype = ' ';
else $filetype = $filetypes[$files['ext'][$index]];
echo "<div class='file'><div class='filename'><img src='{$base_url}images/{$files['ext'][$index]}.jpg'/><a href='{$base_url}{$files['widthDir'][$index]}'>{$file}</a></div>";
echo "<div class='filesize text-right'>{$files['filesize'][$index]} </div><div class='filetype text-right'>{$filetype}</div>";
echo "<div class='filemtime text-center'>{$files['filemtime'][$index]}</div></div>";
}
echo '</div>';
?>
</body>
</html>
<?php
//
function scandir_through($dir,$pattern='*',$skip=false,$subInclude=true,$flag=GLOB_BRACE){
$files = array();
//
$items = glob($dir . '/*');
// , $subInclude true,
for ($i = 0; $i < count($items); $i++) {
if ($subInclude && is_dir($items[$i])) {
$add = glob($items[$i] . '/*');
if($add === false) $add = array();
$items = array_merge($items, $add);
}else {
$slash = strrpos($items[$i],'/');
$dir = substr($items[$i],0,$slash);
// $pattern, $files
if(in_array($items[$i],glob($dir.'/'.$pattern,$flag)) && (($skip===false) || !in_array($items[$i],glob($dir.'/'.$skip,$flag)))) {
$files['filemtime'][] = date('Y-m-d H:i:s',filemtime($items[$i])); // iconv
$items[$i] = iconv('gb2312','utf-8',$items[$i]);
$file = substr($items[$i],$slash+1);
$files['widthDir'][] = $items[$i];
$files['filename'][] = $file;
if(is_dir($items[$i])) {
$files['ext'][] = 'dir';
$files['filesize'][] = '';
}else {
$files['filesize'][] = ceil(filesize($file)/1024).'KB';
if(strrpos($file,'.') === false) $files['ext'][] = 'undefined';
else $files['ext'][] = strtolower(array_pop(explode('.',$file)));
}
}
}
}
return $files;
}
/*
//.htaccess , , : , , 。
RewriteEngine on
#
#RewriteBase /
#
RewriteBase /listFile/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?return=%{REQUEST_FILENAME} [L]
*/
?>
JS 파일
$(document).ready(function(){
//
if(window.location.href == base_url) $("#back").hide();
//
$("#back a").click(function(){
if(autoClickUrl != ''){
//Add baddir for click back.
var url = autoClickUrl;
}else{
var url=window.location.href;
}
if(url == base_url) return false; // , 。
url = url.replace(location.search,''); // ?return, return ( .htaccess )
url = url.substr(0,url.length-2); // url 2 , /#
url = url.substr(0,url.lastIndexOf('/')+1); // ,
window.location.href = url;
return false; // , false <a> 。
});
if(autoClickUrl != '') $("#back a").click()
});
CSS 파일
#container{
border: 1px solid;
margin: 0 auto;
padding: 10px;
width: 654px;
border-radius: 10px 10px 10px 10px;
}
#back{
width: 654px;
margin: 0 auto;
}
#back a{
line-style:none;
}
.file{
clear: both;
height: 2px;
margin-bottom: 20px;
}
.file img{
float:left;
}
.file a{
float:left;
margin-left: 5px;
}
.file div{
float:left;
width:150px;
}
.text-left{
text-align:left;
}
.text-center{
text-align:center;
}
.text-right{
text-align:right;
}
.border-left{
border-left:1px solid;
}
.border-right{
border-right:1px solid;
}
.file div.filename{
width:200px;
}
.file div.filesize{
width:100px;
}
.file div.filemtime{
width:200px;
}
htaccess 파일
# : , , 。
RewriteEngine on
#
#RewriteBase /
#
RewriteBase /listFile/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?return=%{REQUEST_FILENAME} [L]
핵심 폴 더:listFile/images/효과 도 는 다음 과 같 습 니 다./listFile패키지 다운로드
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C++어떤 폴 더 아래 의 하위 폴 더 와 모든 파일 을 옮 겨 다 닙 니 다.다음은 현재 디 렉 터 리 에 있 는 모든 폴 더 와 파일 을 출력 하 는 절대적 인 경로(물론 상대 적 인 경로 일 수도 있 고 입력 한 경로 에 의 해 결정 된다)입 니 다.아래 함수 인 터 페 이 스 는 단일 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.