머리가 좀 아파서
쉴겸 해서 만들어봤습니다.
썸네일 기능은 넣지 않앗습니다.
충분히 응용가능하리라고 봅니다.
사용방식은 크게 두가지 입니다.
list.txt를 참조하는 방식과
그냥 디렉토리를 읽어서 하는 방식입니다.
이하 소스입니다.
$Ypattern_extension = 'gif|jpg|jpeg|png';//확인할 이미지 지정
$Ydir_path_img = './imgviewer/';//확인할 이미지 디렉토리 경로, 절대경로 or 상대경로, 맨마지막에 / 반듯이 붙일것
$Yfile_name_listing = '';//해당파일이 이미지 경로에 존재하면 그것을 참조로 리스팅, ex)list.txt
$Ycheck_file = 0;//파일의 존재유무를 체크 할것인가?, 체크할경우 1, 체크하지 않을 경우 0
$Yimg_width = 200;//이미지 넓이
$Ynum_line = 4;//한라인에 보여줄 이미지 개수
$Ynum_page = 12;//한페이지에 보여줄 개수 설정
$Ynum_pageblock = 10;//한페이지에 보여줄 페이지블럭수 설정
if (!is_dir($Ydir_path_img)) {
echo "지정한 디렉토리가 존재하지 않습니다.";
exit;
}
if (empty($page)) $page = 1;
$start_line = ($page - 1) *10;
$total = 0;
$view_array = Array();
//참조 파일이 존재하면 참조파일을 참조함
if (!empty($Yfile_name_listing) && is_file($Ydir_path_img . $Yfile_name_listing)) {
$list = file($Ydir_path_img . $Yfile_name_listing);
if (is_array($list)){
foreach($list as $value){
$value = trim($value);
//해당 라인이 비었으면 넘어감
if (empty($value)) continue;
//해당 라인이 #으로 시작하면 주석으로 간주하고 넘어감
if (preg_match("`^#`", $value)) continue;
$temp = explode('|', $value);
if (count($temp) > 1) {
$temp[0] = trim($temp[0]);//파일명
if ($Ycheck_file == 1) {
if (is_file($Ydir_path_img . $temp[0])) {
if ($total >= $start_line && $total < $start_line + $Ynum_page) {
$view_array[] = $temp;
}
$total++;
}
}
else {
if ($total >= $start_line && $total < $start_line + $Ynum_page) {
$view_array[] = $temp;
}
$total++;
}
}
}
}
}
else{//참조된 파일이 없으므로 지정된 디렉토리에서 직접 찾는 형태
$all_array = Array();
$d = dir($Ydir_path_img);
while (false !== ($entry = $d->read())) {
if (is_file($Ydir_path_img . $entry) && preg_match("`\." . $Ypattern_extension . "$`i", $entry)) {
$mtime = filemtime($Ydir_path_img . $entry);
$all_array[$mtime] = $entry;
}
else{
continue;
}
}
$d->close();
if (is_array($all_array)){
krsort($all_array);
reset ($all_array);
$i = 0;
foreach($all_array as $temp){
if ($total >= $start_line && $total < $start_line + $Ynum_page) {
$view_array[$i][0] = $temp;
$view_array[$i][1] = $temp;
$i++;
}
$total++;
}
}
}
?>
<table width=900 align="center">
<?php
if (count($view_array) == 0) {
echo "<tr><td height=50>등록된 이미지 없습니다.<td></tr>\n";
}
else{
$cnt = 0;
for ($i = 0; $i < ceil($Ynum_page / $Ynum_line); $i++){
for($j = 0; $j < $Ynum_line; $j ++){
if (empty($view_array[$cnt][0])){
$temp_image = 'no image';
$temp_title = '';
}
else {
$temp_title = $view_array[$cnt][1];
if (!is_file($Ydir_path_img . $view_array[$cnt][0])){
$temp_image = 'not find image';
}
else{
$temp_image = "<img src='" . $Ydir_path_img . $view_array[$cnt][0] . "' width=" . $Yimg_width . ">";
}
}
if ($j == 0) echo "<tr>";
echo "<td width=" . (100 / $Ynum_line) . "% valign=top><table width=" . $Yimg_width . " align=center><tr><td align=center valign=middle>" . $temp_image . "</td></tr><tr><td>" . $temp_title . "</td></tr></table><td>\n";
if ($j == $Ynum_line - 1) echo "</tr>";
$cnt++;
}
}
}
?>
</table>
<br>
<table width=900 align="center">
<tr>
<td>
<?php
//그냥 그누보드꺼 사용
// 현재페이지, 총페이지수, 한페이지에 보여줄 행, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
$str = "";
if ($cur_page > 1) {
$str .= "<a href='" . $url . "1{$add}'>처음</a>";
//$str .= "[<a href='" . $url . ($cur_page-1) . "'>이전</a>]";
}
$start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
$end_page = $start_page + $write_pages - 1;
if ($end_page >= $total_page) $end_page = $total_page;
if ($start_page > 1) $str .= " <a href='" . $url . ($start_page-1) . "{$add}'>이전</a>";
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
$str .= " <a href='$url$k{$add}'><span>$k</span></a>";
else
$str .= " <b>$k</b> ";
}
}
if ($total_page > $end_page) $str .= " <a href='" . $url . ($end_page+1) . "{$add}'>다음</a>";
if ($cur_page < $total_page) {
//$str .= "[<a href='$url" . ($cur_page+1) . "'>다음</a>]";
$str .= " <a href='$url$total_page{$add}'>맨끝</a>";
}
$str .= "";
return $str;
}
if (empty($total)) $total = 1;
$total_page = ceil($total / $Ynum_pageblock);
echo get_paging($Ynum_pageblock, $page, $total_page, 'Yimg_viewer.php?page=');
?>
</td>
</tr>
</table><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
쉴겸 해서 만들어봤습니다.
썸네일 기능은 넣지 않앗습니다.
충분히 응용가능하리라고 봅니다.
사용방식은 크게 두가지 입니다.
list.txt를 참조하는 방식과
그냥 디렉토리를 읽어서 하는 방식입니다.
이하 소스입니다.
$Ypattern_extension = 'gif|jpg|jpeg|png';//확인할 이미지 지정
$Ydir_path_img = './imgviewer/';//확인할 이미지 디렉토리 경로, 절대경로 or 상대경로, 맨마지막에 / 반듯이 붙일것
$Yfile_name_listing = '';//해당파일이 이미지 경로에 존재하면 그것을 참조로 리스팅, ex)list.txt
$Ycheck_file = 0;//파일의 존재유무를 체크 할것인가?, 체크할경우 1, 체크하지 않을 경우 0
$Yimg_width = 200;//이미지 넓이
$Ynum_line = 4;//한라인에 보여줄 이미지 개수
$Ynum_page = 12;//한페이지에 보여줄 개수 설정
$Ynum_pageblock = 10;//한페이지에 보여줄 페이지블럭수 설정
if (!is_dir($Ydir_path_img)) {
echo "지정한 디렉토리가 존재하지 않습니다.";
exit;
}
if (empty($page)) $page = 1;
$start_line = ($page - 1) *10;
$total = 0;
$view_array = Array();
//참조 파일이 존재하면 참조파일을 참조함
if (!empty($Yfile_name_listing) && is_file($Ydir_path_img . $Yfile_name_listing)) {
$list = file($Ydir_path_img . $Yfile_name_listing);
if (is_array($list)){
foreach($list as $value){
$value = trim($value);
//해당 라인이 비었으면 넘어감
if (empty($value)) continue;
//해당 라인이 #으로 시작하면 주석으로 간주하고 넘어감
if (preg_match("`^#`", $value)) continue;
$temp = explode('|', $value);
if (count($temp) > 1) {
$temp[0] = trim($temp[0]);//파일명
if ($Ycheck_file == 1) {
if (is_file($Ydir_path_img . $temp[0])) {
if ($total >= $start_line && $total < $start_line + $Ynum_page) {
$view_array[] = $temp;
}
$total++;
}
}
else {
if ($total >= $start_line && $total < $start_line + $Ynum_page) {
$view_array[] = $temp;
}
$total++;
}
}
}
}
}
else{//참조된 파일이 없으므로 지정된 디렉토리에서 직접 찾는 형태
$all_array = Array();
$d = dir($Ydir_path_img);
while (false !== ($entry = $d->read())) {
if (is_file($Ydir_path_img . $entry) && preg_match("`\." . $Ypattern_extension . "$`i", $entry)) {
$mtime = filemtime($Ydir_path_img . $entry);
$all_array[$mtime] = $entry;
}
else{
continue;
}
}
$d->close();
if (is_array($all_array)){
krsort($all_array);
reset ($all_array);
$i = 0;
foreach($all_array as $temp){
if ($total >= $start_line && $total < $start_line + $Ynum_page) {
$view_array[$i][0] = $temp;
$view_array[$i][1] = $temp;
$i++;
}
$total++;
}
}
}
?>
<table width=900 align="center">
<?php
if (count($view_array) == 0) {
echo "<tr><td height=50>등록된 이미지 없습니다.<td></tr>\n";
}
else{
$cnt = 0;
for ($i = 0; $i < ceil($Ynum_page / $Ynum_line); $i++){
for($j = 0; $j < $Ynum_line; $j ++){
if (empty($view_array[$cnt][0])){
$temp_image = 'no image';
$temp_title = '';
}
else {
$temp_title = $view_array[$cnt][1];
if (!is_file($Ydir_path_img . $view_array[$cnt][0])){
$temp_image = 'not find image';
}
else{
$temp_image = "<img src='" . $Ydir_path_img . $view_array[$cnt][0] . "' width=" . $Yimg_width . ">";
}
}
if ($j == 0) echo "<tr>";
echo "<td width=" . (100 / $Ynum_line) . "% valign=top><table width=" . $Yimg_width . " align=center><tr><td align=center valign=middle>" . $temp_image . "</td></tr><tr><td>" . $temp_title . "</td></tr></table><td>\n";
if ($j == $Ynum_line - 1) echo "</tr>";
$cnt++;
}
}
}
?>
</table>
<br>
<table width=900 align="center">
<tr>
<td>
<?php
//그냥 그누보드꺼 사용
// 현재페이지, 총페이지수, 한페이지에 보여줄 행, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
$str = "";
if ($cur_page > 1) {
$str .= "<a href='" . $url . "1{$add}'>처음</a>";
//$str .= "[<a href='" . $url . ($cur_page-1) . "'>이전</a>]";
}
$start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
$end_page = $start_page + $write_pages - 1;
if ($end_page >= $total_page) $end_page = $total_page;
if ($start_page > 1) $str .= " <a href='" . $url . ($start_page-1) . "{$add}'>이전</a>";
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
$str .= " <a href='$url$k{$add}'><span>$k</span></a>";
else
$str .= " <b>$k</b> ";
}
}
if ($total_page > $end_page) $str .= " <a href='" . $url . ($end_page+1) . "{$add}'>다음</a>";
if ($cur_page < $total_page) {
//$str .= "[<a href='$url" . ($cur_page+1) . "'>다음</a>]";
$str .= " <a href='$url$total_page{$add}'>맨끝</a>";
}
$str .= "";
return $str;
}
if (empty($total)) $total = 1;
$total_page = ceil($total / $Ynum_pageblock);
echo get_paging($Ynum_pageblock, $page, $total_page, 'Yimg_viewer.php?page=');
?>
</td>
</tr>
</table><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
댓글 18개
아래 디렉토리 리스팅과 사이즈 체킹을 조금 응용해서 비슷하게 흉내내봤씁니다..
function get_dirsizea($file_dir) {
$size = 0;
$Ypattern_extension = 'gif|jpg|jpeg|png';//확인할 이미지 지정
$d = dir($file_dir);
while ($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
$size += filesize("$file_dir/$entry");
$temp_filename = explode('.', $entry);
if((preg_match("/($Ypattern_extension)/", $temp_filename[1]))) {
echo "<img src=\"$file_dir/$entry\"><br>";
}
}
}
$d->close();
return $size;
}
function get_dirsizea($file_dir) {
$size = 0;
$Ypattern_extension = 'gif|jpg|jpeg|png';//확인할 이미지 지정
$d = dir($file_dir);
while ($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
$size += filesize("$file_dir/$entry");
$temp_filename = explode('.', $entry);
if((preg_match("/($Ypattern_extension)/", $temp_filename[1]))) {
echo "<img src=\"$file_dir/$entry\"><br>";
}
}
}
$d->close();
return $size;
}
게시글 목록
| 번호 | 제목 |
|---|---|
| 10331 | |
| 28724 |
HTML
싸이월드 둥근 테두리 만드는 방법
2
|
| 10329 | |
| 10328 | |
| 10326 |
JavaScript
히스토리 브러시 툴(History Brush Tool, 단축키 - Y)
1
|
| 10324 | |
| 10323 | |
| 28723 | |
| 10322 |
JavaScript
슬라이스 툴- Slice Tool (단축키 K)
|
| 10321 | |
| 10320 | |
| 28722 | |
| 10318 | |
| 28719 |
HTML
포토샵 레이어의 이해
2
|
| 10317 |
JavaScript
포토샵 해상도의 종류
|
| 10314 | |
| 10312 | |
| 28716 |
HTML
점선 그리는 법...
2
|
| 10308 |
Flash
포토샵에서 쓰이는 파일정보 입니다.
3
|
| 10307 |
JavaScript
♣ 영문으로 보이는 한글폰트를 한글명으로
|
| 10306 | |
| 10305 | |
| 28715 |
HTML
일러스트 단축키2
|
| 10304 |
JavaScript
일러스트 단축키
|
| 10303 | |
| 28714 | |
| 10302 |
Flash
자동으로 창크기 변환
|
| 28713 |
HTML
XP서비스팩2 무시하고 새창 띄우기
|
| 10301 |
MySQL
mysql table 유뮤 확인 코딩[펌]
|
| 10300 |
PHP
php환경 변수 출력
|
| 10299 | |
| 10296 |
기타
연합뉴스 뉴스티커
2
|
| 10294 | |
| 10293 | |
| 10292 | |
| 10291 |
JavaScript
ls 명령에서 LS_COLOR 환경변수로 확장자별 색 바꾸기
|
| 10289 |
JavaScript
php 날짜, 시간 함수 관련 팁
1
|
| 10285 |
PHP
PHP팁 (보안 등)
3
|
| 28711 |
HTML
개행문자 없애기[펌]
1
|
| 10281 |
Flash
swf 바탕빼서 적용하기
3
|
| 10279 |
Flash
mp3 play 플래시 소스입돠~
1
|
| 28710 | |
| 10278 | |
| 10277 | |
| 10276 | |
| 28709 | |
| 10273 | |
| 10270 |
JavaScript
돌맹이로 글자쓰기 ㅡㅡ;; 강좌...
2
|
| 10269 |
JavaScript
주소 보여주기 시를 때 제가 자주 쓰는 방법 이건 조회수 빵이다 ㅡ0ㅡ;
|
| 10267 | |
| 28708 | |
| 10266 | |
| 10264 | |
| 10263 |
JavaScript
마우스 오버시에 텍스트 버튼느낌 style.css 와 자동 스크롤 기능
|
| 10261 | |
| 28707 |
HTML
웹 폰트 적용 시키기 - 초보자용 -
|
| 10260 |
JavaScript
접속때마다 음악 다르게 나오기
|
| 10256 |
JavaScript
img 태그에 border=0을 넣지 않고 적용
3
|
| 10255 | |
| 28706 |
HTML
페이지 자동 이동 방법 3가지!!!
|
| 10253 | |
| 28704 |
HTML
body옆의 스크롤바흔적없애기
1
|
| 10250 |
기타
소스훔쳐보기
2
|
| 28703 |
HTML
마우스 오른쪽 버튼 사용금지
|
| 28702 |
HTML
마우스 룰오버시 여러가지 효과내기
|
| 10249 |
Flash
스위시 무비를 플래시에서 들여오기할 때
|
| 10247 |
Flash
SWF 파일 용량 줄이기
1
|
| 10245 | |
| 10243 | |
| 10240 |
Flash
4. 자주 쓰는 플래시 액션스크립트 용어
2
|
| 10239 | |
| 10238 |
Flash
2. 무비 크기를 줄이기 위한 10가지 방법
|
| 10237 |
Flash
1. 메뉴보다 빠른 단축키(Hot Key)들
|
| 10235 |
Flash
여러가지팁
1
|
| 10225 | |
| 28700 |
HTML
포토샾 팁 72가지
1
|
| 10213 | |
| 10210 | |
| 10207 | |
| 10205 | |
| 10204 | |
| 28693 | |
| 10198 |
Flash
실시간채팅창 붙이기 플래시 버튼액션..
5
|
| 10195 |
JavaScript
php폼메일로 일본어 메일 보내기
2
|
| 10191 |
JavaScript
원하는 부분만 프린트하기.
3
|
| 24785 | |
| 28674 |
HTML
디렉토리 이미지 뷰어
18
현재글
|
| 24784 | |
| 10189 | |
| 10187 | |
| 10182 | |
| 28669 | |
| 10181 | |
| 10175 | |
| 24779 | |
| 24772 | |
| 10173 | |
| 10168 |
JavaScript
웹호스팅서버 보안 - Open DNS 막기
4
|
| 10163 | |
| 10160 |
JavaScript
자동 스크롤 메뉴 (끄기 기능)
2
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기