用PHP去实现静态化

我们在PHP网站开发过程中为了网站的推广或者SEO的需要,需要对网站进行一定的静态化,这里设计到什么是静态页面,所谓的静态页面,并不是页面中没有动画等元素,而是指网页的代码都在页面中,即不需要再去执行PHP脚本等服务器端的语言去运行,我们可以直接访问到的网页,这就是静态网页。

那么静态网页有什么好处呢?第一个主要原因就是因为搜索引擎,由于搜索引擎对PHP页面搜鹿和html页面的收录有一定的差别,并且面临着页面资源的占用问题,我们需要对.php文件进行静态化。有一种方式是改写访问地址,可以通过URL的PATHINFO模式来修改它,让它看上去更像一个静态页面,从而有更大的几率被搜索引擎抓取和收录。

第二点原因就是它可以方便页面的加载,有时候我们去一些比如新浪、网易这些网站的首页,发现内容非常多,但是它的加载时间还真的不长,这里面也有静态化的功劳。网站可以在用户访问网站之前就通过一定的程序来进行静态化,生成静态页面,当用户去访问该页面的时候,由于访问的是静态页面,因此,访问速度会比访问动态页面的速度快了很多倍。这种技术对于大网站来说很有必要,对于小网站也可以采用。它在前台的表现是页面加载速度变快,在后台的表现是减少了数据库的连接,减少了数据库的压力,唯一的缺点就是相对占的硬盘多一些,不过,硬盘相对廉价的多。

既然了解了静态化的一些优点,那么如何做到静态化呢?我们用PHP所能做到的静态化分为纯静态化和伪静态化,二者的却别在于圣经静态页面的机制不同,伪静态化就是通过解析URL和使用重写模式来运行动态页面,它只是对搜索引擎比较友好,并不是真正意义上的静态化,下面我们介绍一下纯静态化。

所谓纯静态化,就是生成HTML文件的方式,我们需要开启PHP自带的缓存机制,即ob_start来开启缓存,并且在ob_start之前不能有任何输出,否则执行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串,第三个函数就是ob_end_clean,它用来清空缓存中的内容并且关闭,成功返回True,失败返回False。

下面请看实例:

这里我们从数据库中取出数据并且把这些数据生成之后缓存到页面中,下面是该php文件:

我们运行上述页面之后,发现该文件夹下自动多了一个html文件,下面是它的代码:

array (size=6) 0 => array (size=4) 'id' => string '1' (length=1) 'level' => string '0' (length=1) 'name' => string '辛星' (length=6) 'pwd' => string 'bd04fcc97578ce33ca5fb331f42bc375' (length=32) 1 => array (size=4) 'id' => string '2' (length=1) 'level' => string '1' (length=1) 'name' => string '小倩' (length=6) 'pwd' => string '61cb72858be523b9926ecc3d7da5d0c6' (length=32) 2 => array (size=4) 'id' => string '3' (length=1) 'level' => string '1' (length=1) 'name' => string '小楠' (length=6) 'pwd' => string 'a3d2de7675556553a5f08e4c88d2c228' (length=32) 3 => array (size=4) 'id' => string '4' (length=1) 'level' => string '1' (length=1) 'name' => string '刘强' (length=6) 'pwd' => string 'fcdb06a72af0516502e5fdccc9181ee0' (length=32) 4 => array (size=4) 'id' => string '5' (length=1) 'level' => string '1' (length=1) 'name' => string '星哥' (length=6) 'pwd' => string '866a6cafcf74ab3c2612a85626f1c706' (length=32) 5 => array (size=4) 'id' => string '6' (length=1) 'level' => string '1' (length=1) 'name' => string '辛勇' (length=6) 'pwd' => string 'e93beb7663f3320eaa0157730d02dd0c' (length=32)

当然这份代码是我们写的php程序自动生成的,可以用浏览器直接访问,从而减轻了数据库的压力。

相关文章

相关视频

可以使用PHP语言设计静态网页,用PHP往实现静态化相关推荐

  1. 用html语言设计如下网页,HTML语言与网页制作教案(5篇可选)

    HTML语言与网页制作教案 城步职业中学:刘红兰 教学内容:HTML语言与网页制作 教学目的: 1.掌握输入和运行HTML文件的方法 2.掌握HTML基本的结构标记 3.掌握html在网页特效中的简单 ...

  2. 分析静态网页客户服务器工作过程,(静态网页制作课程标准.doc

    静态网页制作课程标准 课程编码: 02345 课程类别:专业基础必修课 适用专业:计算机应用 授课系(部):电子与信息系 学分学时: 4 编写执笔人:宋昌统 教研室主任审核签字: 审核日期: 系主任审 ...

  3. 怎么把静态网页放到服务器上,将静态网页部署在云服务器上

    将静态网页部署在云服务器上 内容精选 换一换 部署提供可视化.一键式部署服务,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化.本节通过以下五步介绍如何使用部署服务将归档在软件发布库的 ...

  4. html语言设计一个网页,HTML语言与网页设计.ppt

    HTML语言与网页设计 陈庆章 qzchen@ 2011年05月30日 HTML入门? HTML语言 一种进行网页设计的语言 一种标签式的程序设计语言 一种纯文本式的语言 一种简单易学的语言 一种可以 ...

  5. 静态网页抓取_学习笔记

    目录 1 获取响应内容 2 定制Requests 2.1 传递URL参数 2.2 定制请求头 2.3 发送POST请求 2.4 超时 3 Requests爬虫实践:TOP250电影数据 3.1 网站分 ...

  6. 静态网页和动态网页技术详解

    静态网页 一.静态网页的特点 1. 所谓静态是指的就是网站内容固定不变.  静态网页一经制成,内容就不会再变化, 如要修改网页的内容,就必须修改源码,重新上传到服务器. 2. 静态网页内容通常以HTM ...

  7. 动态网页和静态网页的区别是什么?

    动态网页和静态网页的区别,首先要分别了解两个概念,就是什么是静态网页,什么是动态网页,并且学会区分哪些是静态哪些是动态. 静态网页: (1)静态网页不能简单地理解成静止不动的网页,他主要指的是网页中没 ...

  8. 聊聊 Apache、Tomcat 静态网页、动态网页

    Apache & Tomcat Apache 1.C语言实现的,专门用来提供HTTP服务. 2.特性:简单.速度快.性能稳定.可配置(代理),主要用于解析静态文本,并发性能高,侧重于HTTP服 ...

  9. 动态网页...静态网页...搜索引擎优化

       如何动态网站实现了静态化的,我这里帖一个别人的文章,希望大家明白那是怎么回事    一般来说,网站的页面分为静态和动态两种,静态页面的文件扩展名一般为.htm或.html,动态页面的文件扩展名一 ...

最新文章

  1. drill apache_Apache Drill:如何创建新功能?
  2. black-box优化——第二篇:直接搜索算法
  3. LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Php篇
  4. 五.redis pipeline
  5. 中琅领跑条码打印软件如何导入CDR文件
  6. (转)是时候说说Pivotal这个富二代了!
  7. oracle 进入empt,关于redhat6.2静默安装oracle11g出现的问题 大神救命
  8. Java程序设计基础笔记 • 【第1章 初识Java】
  9. win10系统设置番茄家园开机音乐以及关机音乐(亲测有效)
  10. 如何获取easyclick手机安装包
  11. 注解的写法格式与作用
  12. 2021年中国网络安全硬件市场竞争格局分析:深信服、新华三、启明星辰优势明显[图]
  13. Python爬虫 之 异步爬虫
  14. Python编程之md5加密和sha1加密
  15. 微软捕获中国黑客刘蝶雨的故事
  16. 前端性能测试工具hiper介绍
  17. Mysql:<foreach> </foreach>
  18. js打开飞行模式_什么是飞行模式? 它有什么作用?什么时候应该打开它?
  19. 快速、准确判断三极管的工作状态
  20. PTA 6-2 多项式的求值-C语言实现

热门文章

  1. C语言:字符串+转义字符+ASCLL码
  2. Skia构建系统与编译脚本分析
  3. 自己实现printf函数
  4. PRD里面,一个完整的功能模块需求,应该怎么写?
  5. libcef学习最详细的入门资料系列之一 :libcef基本的入门知识
  6. 判断互质数的九种方法(两种定义+三种质数+两种相邻+两种裂项)
  7. laradock 安装php扩展,Redis安装PHP安装Redis扩展Laradock下安装Redis扩展Laravel
  8. 2023 Softing在线培训计划
  9. 开源设计_开源设计500
  10. PL2586|USB2.0HUB集线器扩展芯片|PL2586旺玖