のみ define('TITLE_T', '古い順'); // 正順表示 define('TITLE_R', '新しい順'); // 逆順表示 define('DIR_DEPTH', -1); // 探索するディレクトリの深さを制限する する:0以上 しない:-1 define('SORT_BY_DATE', 1); // 更新日順にする する:1 しない:0 $icons = array( // 拡張子小文字 => 代替画像 ※変更する場合は「検索する拡張子」も適宜変更すること 'pch' => 'icon_arc.png', 'spch' => 'icon_arc.png', 'txt' => 'icon_txt.png', 'pdf' => 'icon_txt.png', 'mhtm' => 'icon_txt.png', 'mht' => 'icon_txt.png', 'swf' => 'icon_mov.png', 'flv' => 'icon_mov.png', 'wav' => 'icon_mov.png', 'mp3' => 'icon_mov.png', 'wmv' => 'icon_mov.png', 'asf' => 'icon_mov.png', 'mp4' => 'icon_mov.png', 'mpeg' => 'icon_mov.png', 'mpg' => 'icon_mov.png', 'avi' => 'icon_mov.png', 'ts' => 'icon_mov.png', 'm2ts' => 'icon_mov.png', 'rar' => 'icon_arc.png', 'zip' => 'icon_arc.png', 'lzh' => 'icon_arc.png', '7z' => 'icon_arc.png', ); $file_ext = '/^(png|jpe?g|gif|pch|spch|txt|pdf|mhtm|mht|mpo|swf|flv|wav|mp3|wmv|asf|mp4|mpeg|mpg|avi|ts|m2ts|rar|zip|lzh|7z)$/i'; // 検索する拡張子 $ignore_file = '/^(THM_|LOG_|img_|tm_).+\.(png|jpe?g|gif)$|_thumb\.(png|jpe?g|gif)$/i'; // 無視するファイル名 $path = realpath('./').'/'.IMG_DIR; /* ヘッダ */ function head(&$dat,$page){ $dat .= '
';
if ($page==0) { $dat .= '最終更新:'.date('\'y m月 d日 H:i.').' 前回'; } else { $dat .= '最終'; } $dat .= '更新:'.date('\'y m月 d日 H:i.', filemtime(PHP_SELF2)).''; $dat .= " | \n";
}
$dat .= '[更新] [戻る] |
サムネイル一覧
'; } /* 表示処理部分 */ function updatesam(){ global $path,$file_ext,$ignore_file,$icons; // ディレクトリ一覧取得、ソート $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(IMG_DIR, FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS)); $iterator->setMaxDepth(DIR_DEPTH); $key1 = $files = array(); foreach ($iterator as $info) { if (preg_match($ignore_file, $info->getFilename())) { continue; } if (preg_match($file_ext, $info->getExtension())) { // ファイル名と拡張子を取得 $tmpext = '.'.$info->getExtension(); $tmpart = $info->getBasename($tmpext); // サムネイル作成 $fixsub = ($iterator->getSubPath() != '') ? str_replace('/','_2F_',$iterator->getSubPath()).'_2F_' : 'root_2F_'; if (!array_key_exists(strtolower($info->getExtension()), $icons)) { $tmpath = THUMB_DIR.$fixsub.$tmpart.$tmpext; if (!function_exists('imagegif') && !is_file($tmpath)) { $tmpath = THUMB_DIR.$fixsub.$tmpart.str_replace('gif','jpg',strtolower($tmpext)); } if (!is_file($tmpath)) { thumb($path,$tmpart,$tmpext,$iterator->getSubPath()); } } // リスト生成 if (SORT_BY_DATE) { // http://www.php.net/manual/ja/class.splfileinfo.php $key1[] = $info->getMTime(); } else { $key1[] = $info->getFilename(); } $files[] = array('subpath' => $iterator->getSubPath(), 'name' => $tmpart, 'ext' => $tmpext, 'fixsub' => $fixsub); } } // チェック if (!$files) { error('ERROR!!'.TITLE_T.' '.TITLE_R.'
'; $tmpB = ''.TITLE_T.' '.TITLE_R.'
'; } else { $tmpA = ''.TITLE_T.' '.TITLE_R.'
'; $tmpB = ''.TITLE_T.' '.TITLE_R.'
'; } } else { if ($i == 0) { $pagesA .= '[0] '; $pagesB .= '[0] '; } else { $pagesA .= '['.$i.'] '; $pagesB .= '['.$i.'] '; } } } if ($tpage > $next) { $pagesA .= ' 次へ>>'; $pagesB .= ' 次へ>>'; } else { $pagesA .= ' 次へ>>'; $pagesB .= ' 次へ>>'; } // ヘッダHTML head($datA,$page); head($datB,$page); // 総数表示 $datA .= '画像総数'.$fcount."枚
\n"; $datB .= '画像総数'.$fcount."枚
\n"; // 表示方法 $datA .= $tmpA; $datB .= $tmpB; // ページリンク $datA .= ''.$pagesA."
\n"; $datB .= ''.$pagesB."
\n"; // 画像テーブル $datA .= "'.$pagesA."
\n"; $datB .= ''.$pagesB."
\n"; // 表示方法 $datA .= $tmpA; $datB .= $tmpB; // フッタHTML foot($datA); foot($datB); // 記事部分作成 if ($page == 0) { $logfilename = PHP_SELF2; } else { $logfilename = $page.PHP_EXT; } $fp = fopen($logfilename, "w"); set_file_buffer($fp, 0); rewind($fp); fputs($fp, $datA); fclose($fp); chmod($logfilename,0666); // 記事部分作成 if ($page == 0) { $logfilename_reverse = PHP_SELF2_R; } else { $logfilename_reverse = $page.PHP_EXT_R; } $fp = fopen($logfilename_reverse, 'w'); set_file_buffer($fp, 0); rewind($fp); fputs($fp, $datB); fclose($fp); chmod($logfilename_reverse,0666); } } /* フッタ */ function foot(&$dat){ $dat .= ' '; } /* エラー画面 */ function error($mes){ head($dat,1); echo $dat; echo "