【PHP】ページネーションを追加した時の覚書とコード
pukiwikiように簡単な画像uploaderを制作した時にページネーションを入れた覚書です。
PHPでかなり簡単に入れることができ便利!
参考にしたサイト
<?php
require_once('config.php');
$files = glob(IMAGES_DIR.'/*');
$images = array();
foreach ($files as $file) {
if (file_exists(THUMBNAIL_DIR.'/'.basename($file))) {
$images[] = 'thumbnails/'.basename($file);
}
else {
$images[] = 'images/'.basename($file);
}
}
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Wiki用</title>
<meta name="robots" content="noindex" />
<link rel="stylesheet" type="text/css" href="(https:省略/image_uploader/upcss.css">
</head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input id="image" name="image" type="file" />
<input type="submit" value="upload" />
</form>
<hr>
<?php
rsort($images);
$ctno1 = 1;
$imge_page = array();
define('MAX','3'); // 1ページの記事の表示数
$images_num = count($images); // トータルデータ件数
$max_page = ceil($images_num / MAX); // トータルページ数※ceilは小数点を切り捨てる関数
if(!isset($_GET['page_id'])){ // $_GET['page_id'] はURLに渡された現在のページ数
$now = 1; // 設定されてない場合は1ページ目にする
}else{
$now = $_GET['page_id'];
}
$start_no = ($now - 1) * MAX; // 配列の何番目から取得すればよいか
// array_sliceは、配列の何番目($start_no)から何番目(MAX)まで切り取る関数
$disp_data = array_slice($images, $start_no, MAX, true);
?>
<?php foreach ($disp_data as $image): ?>
<?php if (strpos($image, 'thumbnails/') === 0): ?>
<div class=upimg><a href="./images/<?php echo basename($image); ?>"><img class=upimg_img src="<?php echo $image; ?>" alt="" title=""></a>
</br>
<p>▼埋め込みコード▼</br>
<input type="text" value="<?php echo "&ref(https:省略/images/".basename($image).",30%);"; ?>" readonly>
<!-- <?php echo "&ref(https:省略/images/".basename($image).",30%);"; ?></p> -->
</br>
<?php $ctno1 = $ctno1 + "1"; ?>
</div>
<?php else: ?>
<img src="<?php echo $image; ?>">
<?php endif; ?>
<?php endforeach; ?>
</br>
<?php ;
for($i = 1; $i <= $max_page; $i++){ // 最大ページ数分リンクを作成
if ($i == $now) { // 現在表示中のページ数の場合はリンクを貼らない
echo $now. ' ';
} else {
echo '<a href=\'https:省略/index222.php?page_id='. $i. '\')>'. $i. '</a>'. ' ';
}
}
?>
</p>
</body>
</html>
uploader自体のほかコードはまた今度


ディスカッション
コメント一覧
まだ、コメントがありません