ob-页面静态化(1)
$page = $_GET['page'] ?? 1; $filename = 'list_' . $page . '.html'; ////判断有没有静态页面,有的话直接读取静态页面,没有的话,连接数据库,查询数据并且生成静态页面; if (file_exists($filename)) { echo file_get_contents($filename); die(); } ob_start();//打开缓冲区 $pdo = new PDO('mysql:host=127.0.0.1;dbname=blog-admin', 'root', 'root'); $countSql = "select * from caiji"; $count = $pdo->query($countSql)->rowCount();//总记录数 $size = 3; //每页显示条数 $total_page = ceil($count / $size);//总页数 $offset = ($page - 1) * $size; //偏移量 $prev = $page - 1 > 1 ? $page - 1 : 1; //上一页 $next = $page + 1 < $total_page ? $page + 1 : $total_page; //下一页 $sql = "select * from caiji limit $offset,$size"; //limit截取 $pdoStatement = $pdo->query($sql); $data = $pdoStatement->fetchAll(PDO::FETCH_ASSOC); ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <table border="1"> <th>编号</th> <th>标题</th> <th>图片</th> <th>作者</th> <th>浏览量</th> <th>点赞量</th> <?php foreach ($data as $key => $v): ?> <tr> <td><?php echo $v['id']; ?></td> <td><?php echo $v['title']; ?></td> <td><img src="<?php echo $v['img']; ?>"/></td> <td><?php echo $v['author']; ?></td> <td><?php echo $v['views']; ?></td> <td><?php echo $v['zan']; ?></td> </tr> <?php endforeach; ?> </table> <a href="?page=1"/>首页</a> <a href="?page=<?php echo $prev; ?>"/>上一页</a> <?php for ($i = 1; $i <= $total_page; $i++): ?> <a href="?page=<?php echo $i; ?>" /><?php echo $i; ?></a> <?php endfor; ?> <a href="?page=<?php echo $next; ?>"/>下一页</a> <a href="?page=<?php echo $total_page; ?>"/>首页</a> </body> </html> <?php $str = ob_get_contents(); //获取缓冲区的内容 file_put_contents($filename, $str);//生成静态页面 ob_flush(); ob_get_clean(); ?>