$Value ) { $_POST[$Key] = $_GET[$Key]; } foreach( $_POST as $Key => $Value ) { $_POST[$Key] = str_replace("\\\\", "\\", $Value ); $_POST[$Key] = str_replace("\\'", "'", $_POST[$Key] ); $_POST[$Key] = str_replace("\\\"", "\"", $_POST[$Key] ); } foreach( $_COOKIE as $Key => $Value ) { $_COOKIE[$Key] = str_replace("\\\\", "\\", $Value ); $_COOKIE[$Key] = str_replace("\\'", "'", $_COOKIE[$Key] ); $_COOKIE[$Key] = str_replace("\\\"", "\"", $_COOKIE[$Key] ); } if ( $_POST['p'] == '' ) { $_POST['p'] = 1; } // ********************************************************* // 変数 // ********************************************************* // 対象となるディレクトリ $upload_dir = '.'; // 一行の列数 $cols = 8; // サムネイルが無い場合に作成する最大数 $creates = 20; // 行数 $rowmax = 5; // テーブルタグを含むファイル名リストの文字列 $upload_list = ''; $scnt = 0; $rowcnt = 0; $pagecnt = 1; $pagefmt = ""; $file_cnt = 0; $txt_style = 'cursor:pointer;width:100px;overflow:hidden'; //////////////////////////////////////////////////////////// // 常に実行するファイル一覧の取得 //////////////////////////////////////////////////////////// $DirHandle = @opendir($upload_dir); if ( $DirHandle ) { if ( $_POST['p'] != $pagecnt ) { $wk = $_POST['p']-1; $pagefmt = " < $pagecnt"; } else { $pagefmt = " $pagecnt"; } $page_list .= " $pagefmt"; // ループ処理 while( 1 ) { if ( $_POST['p'] != $pagecnt ) { while( 1 ) { $rows = ReadRow( $DirHandle, $cols ); if ( count( $rows ) == 0 ) { $pagecnt++; if ( $_POST['p'] != $pagecnt ) { $pagefmt = " $pagecnt"; } else { $pagefmt = " $pagecnt"; } $page_list .= " $pagefmt"; break; } $rowcnt++; if ( $rowcnt > $rowmax ) { $pagecnt++; if ( $_POST['p'] != $pagecnt ) { $pagefmt = " $pagecnt"; } else { $pagefmt = " $pagecnt"; } $page_list .= " $pagefmt"; $rowcnt = 1; } if ( $_POST['p'] == $pagecnt ) { $rowcnt = 0; break; } $file_cnt += count($rows); } } else { $rows = ReadRow( $DirHandle, $cols ); } // 配列が空の場合はデータが全く存在しないので、 // 何もしないですぐ終わる if ( count( $rows ) == 0 ) { $rowcnt = 0; break; } $rowcnt++; $file_cnt += count($rows); if ( $rowcnt > $rowmax ) { break; } $upload_list .= "\n"; for( $i = 0; $i < $cols; $i++ ) { $upload_list .= ""; if ( $rows[$i] != '' ) { $upload_list .= "
{$rows[$i]}
"; $ret = true; } else { // サムネイルがある場合は、IMG を埋め込む if ( $chk ) { $upload_list .= " target=\"_blank\">"; $style = "style='border:1 #000000 solid'"; $upload_list .= ""; $upload_list .= ""; } else { $upload_list .= " target=\"_blank\">
{$rows[$i]}
"; } } } $upload_list .= "\n"; } $upload_list .= "\n"; } if ( $rowcnt > $rowmax ) { $rowcnt = 1; while( 1 ) { $rows = ReadRow( $DirHandle, $cols ); if ( count( $rows ) == 0 ) { $pagecnt++; if ( $_POST['p'] != $pagecnt ) { $wk = $_POST['p']+1; $pagefmt = " $pagecnt >"; } else { $pagefmt = " $pagecnt"; } $page_list .= " $pagefmt"; break; } $rowcnt++; $file_cnt += count($rows); if ( $rowcnt > $rowmax ) { $pagecnt++; if ( $_POST['p'] != $pagecnt ) { $pagefmt = " $pagecnt"; } else { $pagefmt = " $pagecnt"; } $page_list .= " $pagefmt"; $rowcnt = 1; } } } } // ********************************************************* // 一行のデータを読んで、配列にデータをセットする // ( 戻り値の配列数が 0 の場合、データは存在しない ) // $cols で、1行の列数を決定する // ********************************************************* function ReadRow( $handle, $cols ) { $ret = array(); while( 1 ) { $Target = readdir( $handle ); // データが完全な終了 if ( $Target === false ) { break; } // 対象外は読み飛ばし if ( $Target == '.' || $Target == '..' ) { continue; } if ( is_dir($Target) ) { continue; } $aExt = explode( ".", $Target ); if ( count( $aExt ) == 2 ) { if ( strtoupper( $aExt[1] ) == 'JPG' || strtoupper( $aExt[1] ) == 'JPEG' ) { $ret[] = $Target; } if ( strtoupper( $aExt[1] ) == 'PNG' ) { $ret[] = $Target; } } // 指定回数配列がセットされたらループを終了する if ( count( $ret ) == $cols ) { break; } } return $ret; } # ********************************************************** # アップロードされたファイルを縮小して保存 # ********************************************************** function ImageConvert( $dir, $filename, $type ) { global $err_message; # ファイルの属性等を取得 $target = getimagesize( "$dir/$filename" ); # 現在のサイズ $width = $target[0]; $height = $target[1]; $width_new = 100; // 幅固定 $height_new = (int)( ($height/$width)*$width_new ); # 元のファイルのハンドル if ( $type == 0 ) { $jpeg = @imagecreatefromjpeg ( "$dir/$filename" ); } if ( $type == 1 ) { $jpeg = @imagecreatefrompng ( "$dir/$filename" ); } if ( $jpeg === false ) { return false; } # 新しいイメージ $jpeg_new = @imagecreatetruecolor( $width_new, $height_new ); if ( $jpeg_new === false ) { return false; } # サイズ変更して新しいイメージへ転送 $ret = @imagecopyresampled( $jpeg_new, $jpeg, 0, 0, 0, 0, $width_new, $height_new, $width, $height ); if ( !$ret ) { $err_message = "サイズ変更に失敗しました"; return false; } # JPEG ファイルとして、クオリティ 75 で出力 $fname = explode( ".", $filename ); $ret = @imagejpeg ( $jpeg_new, "$dir/s/{$fname[0]}.jpg", 75 ); if ( !$ret ) { $err_message = "ファイル作成に失敗しました"; return false; } return true; } // ********************************************************* // 画面 // ********************************************************* //require_once( 'lg_view.php' ); ?> lightbox gallery     ( ファイル数 : )