很多框架的模板引擎都有页面静态化的功能  目的是为了优化网站运行时间

静态化分两种  纯静态和伪静态

一. 纯静态

纯静态展示的是实实在在的静态页面
运行PHP程序 判断是否存在静态页 如果存在 展示静态页 如果不存在 生成静态页 再展示
实现方法 是PHP的ob缓冲

    //PHP程序一系列逻辑 并将要展示的数据赋值给某些变量准备在模板中使用
ob_start();//开启ob缓冲区 也可以在配置文件中开启
require_once('template/index.php');//引入模板文件 也有可能是html文件 此时模板中的变量已全部解析替换
$s = ob_get_contents(); //将缓冲区的内容取出
file_put_contents('./index.html', $s);//将缓冲区的内容写入一个静态文件 一般的做法是将文件路径加密之后作为文件名

二.伪静态

伪静态就是在url上看起来是静态 实际上它走的还是动态流程
http://www.baidu.com/home/1.html
实现方法有两种
1.是项目路由解析把后缀拎出来
  $_SERVER变量里可以抓出url上面的所有节点 拆分成自己想要的即可 该替换的替换 该组合的组合
2.是Apache重写功能rewrite
  开启Apache重写功能 在项目目录中创建.htaccess文件写入规则
比如写入如下内容

    RewriteEngine on
RewriteRule ^localhost/([a-zA-Z]{1,})/([0-9]{1,})\.html$ localhost/$1.php?id=$2

如浏览器访问localhost/home/1.html 实际上被apache重写为localhost/home.php?id=1
重写规则的细节规则有点多,有兴趣的朋友可以去研究。

静态化技术也就这两种 伪静态只是url看起来好看 实际上对程序并没有优化效果

PHP静态化技术的更多相关文章

  1. php页面静态化技术;学习笔记

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 网页静态化技术Freemarker的详细介绍

    网页静态化技术Freemarker 一.Freemarker的基本介绍 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道 ...

  3. 网页静态化技术--Freemarker入门

    网页静态化技术:为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又 ...

  4. 网页静态化技术Freemarker

    1.为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信息 ...

  5. php模版静态化技术

    PHP页面的静态化很有必要,尤其是在CMS系统中,一些内容一旦生成,基本上不会有变化,这时如果用html将页面静态化,无疑会减少服务其解析PHP页面的负担.以下是看书学来的PHP静态化技术,记录之以备 ...

  6. 网页静态化技术Freemarkerh简介

    1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信 ...

  7. 页面静态化技术Freemarker技术的介绍及使用实例.

    一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 ...

  8. java秒杀系列(2)- 页面静态化技术

    前言 通过代码片段分别介绍服务端渲染.客户端渲染.对象缓存三种方式的写法. 代码片段仅供参考,具体实现需要根据业务场景自行适配,但思想都是一样. 一.服务端渲染方式 1.接口返回html页面的设置 @ ...

  9. 高性能Java Web 页面静态化技术(原创)

    package com.yancms.util; import java.io.*; import org.apache.commons.httpclient.*; import org.apache ...

随机推荐

  1. 【maven插件】maven-shade-plugin

    概述 该插件提供了将artifact打包到一个本地jar包的能力,包括其依赖关系以及一些参数如 shade -rename重命名依赖关系的包. 目标 shade:shade 绑定到建生命周期中的pac ...

  2. TCP/IP(八)之总结ICP/IP四层模型

    前言 在这里有一个问题,有的书上说TCP/IP是四层有的却说是五层.其实这个问题我也上网查了一下资料. tcp/ip是事实标准,分4层.osi模型是国际标准,分7层.讲课的时候,一般把他们综合起来讲, ...

  3. java数据库编程之高级查询

    第三章:高级查询(-) 3.1:修改表 3.1.1:修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table ` ...

  4. Django 1.10中文文档-聚合

    Django 数据库抽象API 描述了使用Django 查询来增删查改单个对象的方法. 然而,有时候你要获取的值需要根据一组对象聚合后才能得到. 这个主题指南描述了如何使用Django的查询来生成和返 ...

  5. asp.net(C#)利用QRCode生成二维码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...

  6. Recall(召回率)and Precision(精确率)

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/7668501.html 前言 机器学习中经过听到" ...

  7. Bootstrap文本排版基础--Bootsrap

    1.排版前的基础 (1)移动设备优先 <meta name="viewport" content="width=device-width, initial-scal ...

  8. PE格式第六讲,导出表

    PE格式第六讲,导出表 请注意,下方字数比较多,其实结构挺简单,但是你如果把博客内容弄明白了,对你受益匪浅,千万不要看到字数多就懵了,其实字数多代表它重要.特别是第五步, 各种表中之间的关系. 作者: ...

  9. 面试题:Two Sum

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  10. Table样式设置

    <table class="listTable"> <tr><th width="40px">序号</th>&l ...