OSDN Git Service

5b0fe26606b1fd9a1e27c0a11cc0841dd60de716
[cosmic/source.git] / browse.php
1 <?php
2
3 // ファイルブラウザ
4
5 include_once('./config/site.inc.php');
6
7 // とりあえず/抜いとけば安全?
8 $request__d = check_request('d','/^[^\/]+$/','');
9
10 if ($request__d == '') {
11
12         // ディレクトリインデックスを出力
13
14         $dirs = array();
15
16         $files = scandir(PATH_COMIC);
17         foreach ($files as $one) {
18                 if (is_dir(PATH_COMIC.'/'.$one) && $one!='.' && $one!='..') {
19                         $dirs[config__get_dir_index($one)][] = $one;
20                 }
21         }
22
23         $comic = '';
24         $index = array();
25         $idx = 0;
26         foreach ($dirs as $var => $val) {
27                 $comic .= '<a id="'.$idx.'"></a><h3>'.htmlspecialchars($var).'</h3>';
28                 $index[] = '<a href="#'.$idx.'">'.$var.'</a>';
29                 foreach ($val as $one) {
30                         $comic .= '<a href="./browse.php?d='.urlencode($one).'">'.htmlspecialchars($one).'</a><br />';
31                 }
32                 $idx++;
33         }
34
35         $obj_html->set_value('indexlist',implode('|',$index));
36         $obj_html->set_value('comiclist',$comic);
37
38 } else {
39
40         // ファイルリストを出力
41
42         $files = scandir(PATH_COMIC.'/'.$request__d);
43
44         $html  = '<a href="./browse.php">戻る</a>';
45         $html .= '<h3>'.htmlspecialchars($request__d).'</h3>';
46         foreach ($files as $one) {
47                 if (preg_match('/.+\.zip$/usi',$one)) {
48                         $path = $request__d.'/'.$one;
49                         $hash = md5($path);
50                         if (!file_exists(PATH_CACHE.'/'.$hash.CACHE_EXT_INDEX)) {
51                                 file_put_contents(PATH_CACHE.'/'.$hash.CACHE_EXT_INDEX,$path);
52                         }
53                         $cap = mb_substr($one,0,mb_strlen($one)-4);
54                         $html .= '<a href="./viwer.php?ix='.urlencode($hash).'">'.htmlspecialchars($cap).'</a><br />';
55                 }
56         }
57
58         $obj_html->set_value('comiclist',$html);
59 }
60
61 echo $obj_html->apply('browse.html');
62
63 ?>