간단한 디렉토리 인덱싱 시스템(규칙에 맞는것만 보여줌)

이번에 글 몇개 올리면서 샘플파일들을
한 디렉토리에 넣고 계속 한두개씩 추가하고 있는데

자세히는 아니더라도 대충 해당 파일들의 정보를 한눈에 보고 싶어서 만들었습니다.

원리는 같은 위치에 디렉토리 내에 있는 모든 파일을 읽어서
해당 파일들의 첫 라인만 읽어옵니다.
첫라인에 정해진 규칙대로 정의 되어있는 것들만
정보를 가공하여 보여줍니다.

첫라인의 규칙은 전 다음과 같이 정했습니다.
<?php #정보1##정보2###정보3####정보4 ?>
현재는 무조건 4단계의 정보를 넣어야 합니다.

응용하시면 멋진 것도 만들 수 있을거라고 봅니다.

이하는 소스입니다.

<?php

$language = Array();//언어
$cate1 =  Array();//종류
$cate2 =  Array();//구분
$title =  Array();//구분

$d = dir("./");
while (false !== ($entry = $d->read())) {

  if (substr($entry, 0, 1) != '.' && substr($entry, -4) != 'phps' && is_file('./' . $entry)) {

  $fd = fopen ('./' . $entry, "r");
  $info = fgets($fd, 1024);
  fclose ($fd);

  preg_match("`#(.+)##(.+)###(.+)####(.+)\?`", $info, $matches);
  if (!empty($matches[1]) && !empty($matches[2]) && !empty($matches[3]) && !empty($matches[4])){

     $language[$entry] = $matches[1];
     $cate1[$entry] = $matches[2];
     $cate2[$entry] = $matches[3];
     $title[$entry] = $matches[4];
  }
  }
}

$d->close();

$check  = '';
asort($language);
foreach($language as $key => $val){

  $val = trim($val);
  if ($check != $val) {
 
  $check = $val;
  echo "[{$val}] <br>";

  $check2  = '';
  asort($cate1);   
  foreach($cate1 as $key2 => $val2){

     if (trim($language[$key2]) != $val) continue;

     $val2 = trim($val2);
     if ($check2 != $val2) {

       $check2 = $val2;
       echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{$val2}] <br>";

       $check3  = '';
       asort($cate2);   
       foreach($cate2 as $key3 => $val3){

         if (trim($language[$key3]) != $val || trim($cate1[$key3]) != $val2) continue;

         $val3 = trim($val3);
         if ($check3 != $val3) {

           $check3 = $val3;
           echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{$val3}] <br>";

           $check4  = '';
           asort($title);   
           foreach($title as $key4 => $val4){

             if (trim($language[$key4]) != $val || trim($cate1[$key4]) != $val2 || trim($cate2[$key4]) != $val3) continue;

             $val4 = trim($val4);
             if ($check4 != $val4) {

               $check4 = $val4;
               echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{$val4}] <a href='./{$key4}' target='_blank'>[보기]</a><br><br>";
             }
           }
         }
       }
     }
  }
  }
}

?>
<br><br><font color='red'>#### 간단한 디렉토리 정렬 시스템 <br>
같은 위치안의 파일들을 모두 첫라인만 읽어서<br>
첫라인의 &lt;?php #정보1##정보2###정보3####정보4 ?&gt; 문자열을 가공, 정리해서 보여줌<br>
무조건 4개의 정보를 저장하도록 되어있음 ####</font>
<br><br><a href='<?=$_SERVER['PHP_SELF']?>s' target='_blank'>소스보기</a>
<br><a href='./' target='_blank'>전체보기</a>


샘플 url : http://82da.com/Ybbs/sample/

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 바람부는데로

, , ,
Response
No Trackback , No Comment
RSS :
http://apmusers.com/tt/dbckdghk/rss/response/13

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

« Previous : 1 : ... 88 : 89 : 90 : 91 : 92 : 93 : 94 : 95 : Next »

블로그 이미지

유창화의 블로그(사진은 10년전 모습)

- 바람부는데로

Archives

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

이올린 추천글

Site Stats

Total hits:
235448
Today:
150
Yesterday:
143