静态页面生成

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Wild_sir/article/details/88972111

为啥要生成静态页面?
第一、网站生成静态可以减轻服务器负担,网页在被阅读时不需要再调用数据库。
第二、网站生成静态了,网站会更安全。
第三、网站生成静态最重要的一点了,那就是有利于搜索引擎收录,因为搜索引擎优先收录静态页面。
第四、网站生成静态可以加速页面翻开阅读速度,静态页面无需衔接数据库翻开速度较动态页面有明显提高。

我来写一个简单的生成静态页(php要ob扩展)
1.你要有一个主页(点击详情页就可以进入静态页说白了你要看里面的内容那内容就是静态页)

<?php 
 header("content-type:text/html;charset=utf-8");
 $pdo =new PDO("mysql:host=127.0.0.1;dbname=zzr","root","root");
 $data = $pdo->query("select * from `news`")->fetchAll();
 ?>
 <!DOCTYPE html>
 <html lang="en">
 <head>
 	<meta charset="UTF-8">
 	<title>主显示</title>
 </head>
 <body>
 <table border="1">
 		<tr>
 			<td>id</td>
 			<td>title</td>
 			<td>操作</td>
 		</tr>
 		<?php foreach ($data as $key => $value) { ?>
 			<tr>
 				<td><?php echo $value['id']; ?></td>
 				<td><?php echo $value['title']; ?></td>
 				<td><a href="obshow.php?id=<?php echo $value['id']; ?>">[详情页]</a></td>
 			</tr>
 		<?php } ?>
 	</table>
 </body>
 </html>

2.见一个内容模板(我是在当前目录先建的news文件里面放着mo.php)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>显示</title>
</head>
<body>
	<h3><?php echo $data['title']; ?></h3>
	<hr>
	<div>
		<?php echo $data['rong']; ?>
	</div>
</body>
</html>

3.然后批量生成静态页(说白了第一个人访问的时候那就生成静态页了,在访问就很快)

<?php 
 header("content-type:text/html;charset=utf-8");
 ob_start();//开启
 $pdo =new PDO("mysql:host=127.0.0.1;dbname=zzr","root","root");
 $res = $pdo->query("select * from `news`")->fetchAll();
 foreach ($res as $key => $value) {
 $id = $value['id'];
 $data = $pdo->query("select * from `news` where `id`='$id'")->fetch();
 include("./news/mo.php");
 $ch=ob_get_contents();//获取
 file_put_contents("./huan/pi-"."$id".".html", $ch);//生成放在这里面
 ob_clean();
 }

4.生成过程写完了然后就是判断有了就不能生成了要不然麻烦直接访问就完事了

<?php 
header("content-type:text/html;charset=utf-8");
 $id = $_GET['id'];
 //有的话直接访问
 if (file_exists("./huan/jing-"."$id".".html")) {
  header("Location:./huan/jing-"."$id".".html");
  exit;
 }
 //没有就生成(也就是调用上面的过程)
 ob_start();
 $pdo =new PDO("mysql:host=127.0.0.1;dbname=zzr","root","root");
 $data = $pdo->query("select * from `news` where `id`='$id'")->fetch();
 include("./news/mo.php");
 $ch=ob_get_contents();
 file_put_contents("./huan/jing-"."$id".".html", $ch);

代码到这就完了

 目录结构:
  -1.php
  -2.php
  -3.php
  -4.php
  --news
    -mo.php
  --huan
     -jing-.''.html    

猜你喜欢

转载自blog.csdn.net/Wild_sir/article/details/88972111