thinkphp 页面静态化
页面静态化(代码在最后)
是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含“?”、“=”、“&”等特殊符号。 注意:静态页面并非网站上没有动画的就是静态页面。
是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页。常见的扩展名有:.asp .php .jsp .cgi.aspx 等。 注意:动态页面的“动态”是网站与客户端用户互动的意思,而非网页上有动画的就是动态页面。
什么是PHP静态化
就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。
为什么要让网页静态化
一、加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
二、有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;
三、减轻服务器负担,浏览网页无需调用系统数据库;
四、网站更安全,HTML页面不会受php相关漏洞的影响; 观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。
数据库出错时,不影响网站正常访问。
生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。
thinkPHP实现静态页的方法-buildHtml
简版
public function index(){
$info = $this->buildHtml("realindex1.html", ' ', 'blogs/index');
// ①生成的静态页名称 ②目录 ③方法名
dump($info);
}
在需要生成静态页的函数里加入上面代码可以自动生成你想要的静态页面

完整版
//首页显示
public function index(){
if(file_exists(HTML_PATH.'realindex.html')){//file_exists检查文件是否存在 if(time()-filemtime(HTML_PATH.'realindex.html')<=600)//filemtime() 函数返回文件内容上次的修改时间。
$this->display(HTML_PATH."realindex.html");
else
$this->createIndex();//调用(将首页生成为一个静态页面)的函数
}else{
$this->createIndex();
}
}
//将首页生成为一个静态页面
private function createIndex(){
$user = M('user');
$uid = $_SESSION['uid'];
$blog = M('blog');
$fenlei = M('blogclass');
$i = $user->where("uid=$uid")->find();
$datas = $blog->table('blog b,user u')->where("b.uid=u.uid and bisvalid=1")->limit(0, 10)->select();
$data = $fenlei->select();
//统计阅读量
$yueduliang = $blog->table('blog b,userblog ub')->where("b.bid=ub.bid and ub.isvalid=1")
->field('b.bid,b.bbiaoti,count(ub.bid) ubnum')->group('b.bid')->order('ubnum desc')->select();
//统计评论量
$pinglunliang = $blog->table('pinglun p,blog b')->where("p.bid=b.bid and p.pstatus=1 and p.pisvalid=1 ")
->field('b.bid,b.bbiaoti,count(p.pid) pnum')->group('b.bid')->order('pnum desc')->select();
$this->assign('name', $i['uloginname']);
$this->assign('data', $datas);
$this->assign('fenlei', $data);
$this->assign('yueduliang', $yueduliang);
$this->assign('pinglunliang', $pinglunliang);
$this->buildHtml("realindex.html", '', 'blogs/index');
$this->display('blogs/index');
}


显示页面就不截图了
欢迎交流QQ:634487911
微信:CP-634487911
thinkphp 页面静态化的更多相关文章
- 基于 ThinkPHP 3.2.3 的页面静态化功能的实现
PHP 的页面静态化有多种实现方式,比如使用输出缓冲(output buffering),该种方式是把数据缓存在 PHP 的缓冲区(内存)中,下一次取数据时直接从缓冲区中读取数据,从而避免了脚本的编译 ...
- PHP基础知识------页面静态化
1.在开发项目时,有时会遇到一些页面数据量特别大,但是又不经常改变的情况,如商城首页等,这时候就需要进行页面静态化,减轻服务器和数据库的压力. 这里我们先用原生的PHP写一个简单的demo,用来理解页 ...
- 页面静态化技术Freemarker技术的介绍及使用实例.
一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 ...
- JSP页面静态化
Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态 ...
- 大型网站提速关键技术(页面静态化,memcached,MySql优化)(三)
页面静态化的技术实现有两种方式 使用PHP自己的缓存机制 先说明一下OB缓存的机制. ob1.php 代码:说明的ob的各个用法->项目中 ☞ 如何打开ob缓存 ① 配置php.ini ...
- 大型网站提速关键技术(页面静态化,memcached,MySql优化)(二)
一:页面静态化 几个概念: 静态网址:(比如:http://localhost/abc.html) 特点:1.利用seo(search engine optimization) 搜索引擎优化;2:访问 ...
- 大型网站提速关键技术(页面静态化,memcached,MySql优化)(一)
一:关键技术介绍: 衡量是否为大型网站的要素: A:PV值(page views 页面浏览量) 访问量大: 带来的问题:1:流量大 -->解决方案:增加带宽,优化程序(视频和图片较浪费带宽,尽量 ...
- php页面静态化技术;学习笔记
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C# MVC 页面静态化导致的问题
在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.htm ...
随机推荐
- Thread in depth 2:Asynchronization and Task
When we want to do a work asynchronously, creating a new thread is a good way. .NET provides two oth ...
- ArcGIS下图层范围不正确的两种处理方式
ArcGIS下图层范围不正确,偶尔能碰上这种情况,主要表现为“缩放至图层”时,其显示范围与该图层内所有要素的外包围盒范围不一致.针对这个问题,有两种解决办法. 方法一:导出数据.新创建含有要素的Sha ...
- CryptoJS与C#AES加解密互转
CryptoJS下载地址: https://code.google.com/archive/p/crypto-js/downloads http://download.csdn.net/detail/ ...
- js获取select下拉框的value值和text文本值
介绍一种取下拉框值以及绑定下拉框数据的方法 这里用到的jquery-ui-multiselect插件 1.前台html代码 <span class="ModuleFormFiel ...
- 命名空间“Microsoft”中不存在类型或命名空间名“Reporting”(是否缺少程序集引用?)
IDE升级到VS2017之后,出现了如题所示的报错,重新引用DLL的方法如下: 1.右键引用,选择添加引用. 2.左侧选择浏览,下面点击浏览按钮. 3.分别添加Microsoft.ReportView ...
- C#字符串转UNICODE
public static string StringToUnicode(string s)//字符串转UNICODE代码 { char[] charbuffers = s.ToCharArray() ...
- SqlAlchemy操作(二)
SQLALchemy初始化链接数据库 1. 数据库配置. https://www.cnblogs.com/mengbin0546/p/10124560.html 2. python端操作. 一. ...
- Cordova - CordovaError: Promise rejected with non-error: 'ios-deploy was not found
错误信息: CordovaError: Promise rejected with non-error: 'ios-deploy was not found. Please download, bui ...
- python 进程、线程、协程感悟
进程: 感觉只是使用Process模块加以使用即可: # -*- coding: utf-8 -*- # data:2019-02-23 21:23 # user:DIY # file:thread_ ...
- python 设置默认的导包路径
在python中 可以通过 sys 模块添加导包时的搜寻路径, sys.path 返回的是所有默认导包路径的列表(搜索次序从下标为零开始,直到寻找到需要导入的包结束) sys.path.insert( ...