테스트 사이트 - 개발 중인 베타 버전입니다

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

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

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

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

첫라인의 규칙은 전 다음과 같이 정했습니다.
<?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/<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

이건 정말 좋은 팁이네요.
^^

게시글 목록

번호 제목
24900
24899
24898
24897
24896
24895
24894
24893
24892
24891
24890
24889
24888
24887
24886
11687
24885
24884
24883
24882
24881
24879
24878
24877
24875
24874
24873
24872
24871
11683
11662
11659
29136
11647
11644
11641
11634
11632
29135
11631
11628
24870
24869
24868
24867
24866
24865
24864
24863
24862
24861
24860
11627
24859
24858
24856
24855
24854
24853
24852
29130
11625
11622
11617
11604
11596
11591
11586
29128
11583
11579
11578
11574
11566
11565
11562
11561
29125
11558
11556
11533
11529
29118
11526
11519
29115
11518
11516
11515
11509
11508
29112
11496
29109
29106
11495
11488
11486
11483
11471