【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自体のほかコードはまた今度

未分類

Posted by BlueBear