这是本人根据自己学习PHP技术页面静态化的过程所写的学习笔记,希望能够对大家有所帮助。 1、基本思路: (1)用户第一次访问这个页面时从数据库读出内容,放在缓存中; (2)将缓存中的数据写成一个html静态页面的文件; (3)用户以后访问都去读取生成html
这是本人根据自己学习PHP技术页面静态化的过程所写的学习笔记,希望能够对大家有所帮助。
1、基本思路:
(1)用户第一次访问这个页面时从数据库读出内容,放在缓存中;
(2)将缓存中的数据写成一个html静态页面的文件;
(3)用户以后访问都去读取生成html文件,然后输出在屏幕上;
(4)每隔一定的时间重新生成一次html静态页面。
2、创建数据库
create table news( id int unsigned primary key auto_increment, title varchar(128) not null, content varchar(256) not null, filename varchar(32)) engine=MyISAM
3、测试数据
INSERT INTO `static_pages_news`.`news` (`id`, `title`, `content`, `filename`) VALUES (NULL, 'hello1', '北京你好', NULL), (NULL, 'hello2', '四川你好', NULL);
4、代码
news_list.php(新闻列表页面)<?php //新闻列表 //查询数据库,获取信息=>SqlHelper.class.php $conn = mysql_connect("localhost", "root", "root"); if (!$conn) { die("连接失败"); } mysql_select_db("static_pages_news", $conn); mysql_query("set names utf8"); $sql = "select * from news"; $res = mysql_query($sql); header("content-type:text/html;charset=utf-8"); echo "<h1 id="新闻列表">新闻列表</h1>"; echo "<a href="#">添加新闻</a><hr>"; echo "
id | 标题 | 查看详情 |
{$row['id']} | {$row['title']} | 查看详情 |
show_news.php(新闻详情页面)
<?php $id = @$_GET['id']; //构建文件名 $html_filename = "new_id" . $id . ".html"; $html_path = dirname(__FILE__) . "/" . $html_filename; //判断html页面是否有并且页面最后修改时间到现在小于30s if (file_exists($html_path) && filemtime($html_path) + 30 < time()) { //直接访问html页面(把html页面的内容echo浏览器) echo file_get_contents($html_path); exit ; } $conn = mysql_connect("localhost", "root", "root"); if (!$conn) { die("连接失败"); } mysql_select_db("static_pages_news", $conn); mysql_query("set names utf8"); $sql = "select * from news where id=$id"; $res = mysql_query($sql); //开启缓存 ob_start(); if ($row = mysql_fetch_assoc($res)) { header("content-type:text/html;charset=utf-8"); echo "<table border='1px' bordercolor='green' cellspacing='0' width=400px height=200px>"; echo "<tr><td>新闻详细内容</td></tr>"; echo "<tr><td>{$row['title']}</td></tr>"; echo "<tr><td>{$row['content']}</td></tr>"; echo ""; } else { echo "没有结果"; } $html = ob_get_contents(); $my_header = "<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"; //把ob写进html文档 file_put_contents($html_path, $my_header . $html); mysql_free_result($res); mysql_close($conn); ?>
5、不足之处
(1)在查看新闻详情的时候,仍然是一个PHP页面
(2)实时性不够好,有30s的延时

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境