홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
현재 디렉토리(폴더) 파일 목록 보기, PHP소스
11년 전
현재 디렉토리(폴더)에 있는 파일들 목록을 보여주고 링크를 달아주는 작은 PHP+JAVASCRIPT 코드입니다. 보여줄 파일 확장자를 제한할 수 있고 선택적으로 보여줄 수 있도록 되어 있습니다. PHP 로 디렉토리와 파일들을 어떻게 다룰 수 있는 지 알 수 있는 소스코드이며 적당히 가공해서 실무에도 사용할 수도 있겠습니다.

<html>
<head>
<title>현재 폴더 페이지 목록</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<style type="text/css">
A:link {color:#3366CC; text-decoration:none;}
A:active {color:#1F3174; text-decoration:none;}
A:visited {color:#999999; text-decoration:none;}
A:hover {color:#FF9966; text-decoration:underline;}
IMG { border: 0; }
body {margin:0px; padding:0px}
span {color:#7C9CA7; font:11px 돋움; line-height:19px;}
</style>

<body leftmargin="0" topmargin="0">
<table border=0 cellpadding=0 cellspacing=0><tr>
<td width=10></td>
<?
$start_page = "page_list.php";
$ext_array = array("php", "html", "htm", "gif", "jpg", "png");
$ext_max = count($ext_array);
$path = "./";

for ($n=0;$n<$ext_max;$n++) {
echo "<td><input type='checkbox' name='add_" . $ext_array[$n] . "' checked onclick='redisplay_page()'></td><td width=30><span>" . $ext_array[$n] . "</span></td>";
}
?>
</tr></table>

<script>
var files = Array();
<?

if ($dir = opendir($path)) {
while ($file = readdir($dir)){
  if (is_dir($path.$file)) {
   if ($file != '.' && $file != '..') {
     if (file_exists("$file/$start_page")) {
      echo "files[files.length]='$file/$start_page';\n";
     }
   } else {
   }
  } else {
   if ($file!=$start_page){
    $name_array = pathinfo($file);
    $ext = $name_array['extension'];
    if (strlen(str_replace($ext_array,"",$ext))==0) echo "files[files.length]='$file';\n";
   }
  }
}
closedir($dir);
}
?>


var stagex=10,stagey=20,x,y,n,z,cellw=220,cellh=20,obj,n;

function display_page() {
files.sort();
var i = 0, pass;
for (n=0;n<files.length;n++){
  temp_arr = (files[n].replace(/ /gi,"%20").replace(/\\/gi,"/")).split(".");
  temp_ext = temp_arr[temp_arr.length-1];
  pass = 0;
  switch (temp_ext){
   <?
   for ($n=0;$n<$ext_max;$n++) {
    echo "case '".$ext_array[$n]."': if (!document.getElementsByName('add_".$ext_array[$n]."')[0].checked) pass = 1; break;\n";
   }
   ?>
   default : pass=1; break;
  }
  if (pass) continue;
  //x = stagex + 1+(n % 4)*cellw;
  //y = stagey + 1+ Math.floor(n/4) * cellh;
  x = stagex + 1+ Math.floor(i/30) * cellw;
  y = stagey + 1+ (i % 30) * cellh;
  document.write('<div id="block_'+n+'" style="position:absolute; background-color:#efefef; z-index:'+z+'; left:'+x+'px; top:'+y+'px; width:'+(cellw-1)+'px; height:'+(cellh-1)+'px; padding-left:5px; display:block"><span>'+(10001+i).toString().substring(1)+': <a href="'+files[n]+'">'+files[n].replace('<?=$start_page;?>','')+'</a> <a href="'+files[n]+'" target=_blank>▲</a></span></div>');
  i++;
}
}

function redisplay_page() {
var i = 0, pass, obj;
for (n=0;n<files.length;n++){
  temp_arr = (files[n].replace(/ /gi,"%20").replace(/\\/gi,"/")).split(".");
  temp_ext = temp_arr[temp_arr.length-1];
  pass = 1;
  switch (temp_ext){
   <?
   for ($n=0;$n<$ext_max;$n++) {
    echo "case '".$ext_array[$n]."': if (!document.getElementsByName('add_".$ext_array[$n]."')[0].checked) pass = 0; break;\n";
   }
   ?>
   default : pass=1; break;
  }
  if (pass) {
   //x = stagex + 1+(n % 4)*cellw;
   //y = stagey + 1+ Math.floor(n/4) * cellh;
   x = stagex + 1+ Math.floor(i/30) * cellw;
   y = stagey + 1+ (i % 30) * cellh;
   obj = document.getElementById('block_'+n);
   obj.style.display='block';
   obj.style.left = x;
   obj.style.top = y;
   i++;
  } else {
   document.getElementById('block_'+n).style.display='none';
  }
}
}

display_page();

</script>
</body>
</html>
추천추천 : 514 추천 목록
번호 제목
3,035
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
3,034
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.