首页 后端开发 php教程 用PHP往实现静态化

用PHP往实现静态化

Jun 13, 2016 pm 12:02 PM
color font gt lt

用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文件:

<?php //开启缓存ob_start();//第一步连接数据库$conn = mysqli_connect("localhost","root","","bbs");//第二步设置相应的字符编码$setting = &#39;set names utf8&#39;;mysqli_query($conn,$setting);//第三步进行查询$sql = &#39;SELECT * FROM user&#39;;$result = mysqli_query($conn,$sql);//第四步把查询结果转化为一个数组$rows = mysqli_num_rows($result);$sqldata = array();for($i = 0;$i <$rows;$i ++){	$sqldata[] = mysqli_fetch_assoc($result);}//然后打印该信息var_dump($sqldata);//得到生成的html文件,下次访问就无需访问数据库了$msg = ob_get_contents();ob_end_clean();//把输出内容放入一个html文件中$f = fopen("static.html","w");fwrite($f,$msg);echo "静态化成功";
登录后复制

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

<pre class='brush:php;toolbar:false;'><b>array</b> <i>(size=6)</i>  0 <font color=&#39;#888a85&#39;>=></font>     <b>array</b> <i>(size=4)</i>      &#39;id&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;1&#39;</font> <i>(length=1)</i>      &#39;level&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;0&#39;</font> <i>(length=1)</i>      &#39;name&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;辛星&#39;</font> <i>(length=6)</i>      &#39;pwd&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;bd04fcc97578ce33ca5fb331f42bc375&#39;</font> <i>(length=32)</i>  1 <font color=&#39;#888a85&#39;>=></font>     <b>array</b> <i>(size=4)</i>      &#39;id&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;2&#39;</font> <i>(length=1)</i>      &#39;level&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;1&#39;</font> <i>(length=1)</i>      &#39;name&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;小倩&#39;</font> <i>(length=6)</i>      &#39;pwd&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;61cb72858be523b9926ecc3d7da5d0c6&#39;</font> <i>(length=32)</i>  2 <font color=&#39;#888a85&#39;>=></font>     <b>array</b> <i>(size=4)</i>      &#39;id&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;3&#39;</font> <i>(length=1)</i>      &#39;level&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;1&#39;</font> <i>(length=1)</i>      &#39;name&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;小楠&#39;</font> <i>(length=6)</i>      &#39;pwd&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;a3d2de7675556553a5f08e4c88d2c228&#39;</font> <i>(length=32)</i>  3 <font color=&#39;#888a85&#39;>=></font>     <b>array</b> <i>(size=4)</i>      &#39;id&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;4&#39;</font> <i>(length=1)</i>      &#39;level&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;1&#39;</font> <i>(length=1)</i>      &#39;name&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;刘强&#39;</font> <i>(length=6)</i>      &#39;pwd&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;fcdb06a72af0516502e5fdccc9181ee0&#39;</font> <i>(length=32)</i>  4 <font color=&#39;#888a85&#39;>=></font>     <b>array</b> <i>(size=4)</i>      &#39;id&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;5&#39;</font> <i>(length=1)</i>      &#39;level&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;1&#39;</font> <i>(length=1)</i>      &#39;name&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;星哥&#39;</font> <i>(length=6)</i>      &#39;pwd&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;866a6cafcf74ab3c2612a85626f1c706&#39;</font> <i>(length=32)</i>  5 <font color=&#39;#888a85&#39;>=></font>     <b>array</b> <i>(size=4)</i>      &#39;id&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;6&#39;</font> <i>(length=1)</i>      &#39;level&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;1&#39;</font> <i>(length=1)</i>      &#39;name&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;辛勇&#39;</font> <i>(length=6)</i>      &#39;pwd&#39; <font color=&#39;#888a85&#39;>=></font> <small>string</small> <font color=&#39;#cc0000&#39;>&#39;e93beb7663f3320eaa0157730d02dd0c&#39;</font> <i>(length=32)</i>
登录后复制

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


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

华为GT3 Pro和GT4的差异是什么? 华为GT3 Pro和GT4的差异是什么? Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

修复:截图工具在 Windows 11 中不起作用 修复:截图工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

Python之Pygame的Font模块——如何使用文本和字体? Python之Pygame的Font模块——如何使用文本和字体? Apr 23, 2023 pm 11:19 PM

Pygame的Font文本和字体Pygame通过pygame.font模块来创建一个字体对象,从而实现绘制文本的目的。该模块的常用方法如下所示:名称说明pygame.font.init()初始化字体模块pygame.font.quit()取消初始化字体模块pygame.font.get_init()检查字体模块是否被初始化,返回一个布尔值。pygame.font.get_default_font()获得默认字体的文件名。返回系统中字体的文件名pygame.font.get_fonts()获取所有

如何修复无法连接到iPhone上的App Store错误 如何修复无法连接到iPhone上的App Store错误 Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4pro好还是gt好 watch4pro好还是gt好 Sep 26, 2023 pm 02:45 PM

watch4pro和gt各自具有不用的特点和适用场景,如果注重功能的全面性、高性能和时尚外观,同时愿意承担较高的价格,那么Watch 4 Pro可能更适合。如果对功能要求不高,更注重电池续航和价格的合理性,那么GT系列可能更适合。最终的选择应根据个人需求、预算和喜好来决定,建议在购买前仔细考虑自己的需求,并参考各种产品的评测和比较,以做出更明智的选择。

请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 Jun 13, 2016 am 10:24 AM

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

如何使用 iPadOS 17.4 优化 iPad 电池寿命 如何使用 iPadOS 17.4 优化 iPad 电池寿命 Mar 21, 2024 pm 10:31 PM

如何使用iPadOS17.4优化iPad电池寿命延长电池续航时间是移动设备体验的关键,iPad是一个很好的例子。如果您觉得iPad电池消耗速度过快,不用担心,在iPadOS17.4中有许多技巧和调整可以显着延长设备的运行时间。本深入指南的目标不仅仅是提供信息,而是改变您使用iPad的方式,增强您的整体电池管理,并确保您可以在无需充电的情况下更长时间地依赖您的设备。通过采用此处概述的做法,您朝着更高效、更谨慎地使用技术迈出了一步,这些技术是根据您的个人需求和使用模式量身定制的。识别主要的能量消耗者

See all articles