搜索

查看: 3101|回复: 11

[PHP] PHP页面静态化的优缺点与实现

[复制链接]
发表于 2023-5-4 17:04:18 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:04:18 3101 11 看全部
目录
  • 前言
  • 一、页面静态化概念
  • 静态化定义
  • 静态页面
  • 动态页面
  • 静态化分类
  • 静态化优点和缺点
  • 二、静态化实现
  • 其他
    前言
    随着网站的内容的增多和用户访问量的增多,网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。

    一、页面静态化概念
    静态化定义
    静态化就是指把原本的动态生成的 html 页面变成静态内容保存起来,当用户客户端请求的时候,直接返回静态页面,不用再经过服务渲染,不用查询数据库,可以大大减少服务器和数据库压力,显著提升网站性能。

    静态页面
    静态页面,即静态网页,是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。静态页面需要占一定的服务器空间,且不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外)。常见的静态页面举例:.html扩展名的、.htm扩展名的。

    动态页面
    动态页面是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页。 动态页面通常可以通过网站后台管理系统对网站的内容进行更新管理。发布新闻,发布公司产品,交流互动,博客,网上调查等,这都是动态 网站的一些功能。也是我们常见的。 动态页面常见的扩展名有:.asp .php .jsp .cgi.aspx 等。 注意:动态页面的“动态”是网站与客户端用户互动的意思,而非网页上有动画的就是动态页面。

    静态化分类
  • 从形式看:纯静态和伪静态
  • 从范围看:整体静态化和局部静态
    静态化优点和缺点
    优点:
  • 适合 SEO,有利于搜索引擎收录
  • 提升网站速度和稳定性
  • 网站更加安全,HTML 页面避免 PHP 相关漏洞
    缺点:
  • 生成静态页面多,占用更多的存储空间
  • 增加网站开发成本和维护成本
    二、静态化实现
    认识 PHP Buffer
    在php中,buffer其实就是缓冲区,一个内存地址空间,主要用于存储数据;默认是开启状态,大小默认4096,在php.ini文件中由output_buffering配置,只有当缓冲区满了或者 php 运行完毕,才将数据输出去。
    php.ini 代码示例:
    output_buffering = on
    #打开output缓冲,默认打开的。
    缓冲流程:
    # 详细了解输出过程,大家可以自行查阅
    1.打开了 php 输出缓存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display
    2.未打开 php 输出缓存: echo,print -> server buffering -> browser buffering -> browser display

    原生PHP输出(创建 index.php 文件,本地配置虚拟域名"www.test.vip")。
    代码如下(示例):


       
        网页静态化

    排名

       
            
  • No.
       


    请求如下(www.test.vip/index.php):

    202302200933119.png

    202302200933119.png


    使用PHP文件读写功能生成静态页面
    代码如下(示例):


       
        网页静态化

    排名

       
  • No.1
       
  • No.2
       
  • No.3
       
  • No.4
       
  • No.5


    ';
    $fp = fopen("index.html", "w");
    if (!$fp) {
        echo "System Error";
        exit();
    }
    fwrite($fp, $data);
    fclose($fp);
    echo "生成 index.html 成功!";
    其中"$data"数据是解析好的前端代码,若包含 PHP 原生代码是无法解析的,那如何把动态的 PHP 语言静态化?
    PHP OB 缓存机制生成静态页面
    代码如下(示例):

    其他
    ob_start() // 打开输出控制缓冲,若 php.ini 已经开启,那么这里会开启一个新的输出缓冲区;
    ob_get_length() // 返回输出缓冲区的长度
    ob_get_level() // 返回输出缓冲区的嵌套级别
    ob_get_status() // 返回输出缓冲区的状态(数组形式返回,默认返回最顶层,参数为true时返回所有)
    ob_get_contents() // 返回输出缓冲区的内容
    ob_get_clean() // 以字符串格式返回当前输出缓冲区并关闭输出缓冲,等价于ob_get_contents和ob_end_clean);
    ob_end_clean() // 清空(擦除)缓冲区并关闭输出缓冲
    ob_get_flush() // 以字符串返回输出缓冲区内容并关闭缓冲
    ob_end_flush() // 冲刷出(送出)输出缓冲区内容缓冲并关闭输出缓冲

    到此这篇关于PHP页面静态化的优缺点与实现的文章就介绍到这了,更多相关PHP页面静态化内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
  • 回复

    使用道具 举报

    发表于 2023-6-28 22:30:31 | 显示全部楼层
    米老鼠和蓝精鼠v 2023-6-28 22:30:31 看全部
    既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
    回复

    使用道具 举报

    发表于 2023-6-29 04:16:49 | 显示全部楼层
    123456825 2023-6-29 04:16:49 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 20:42:06 | 显示全部楼层
    麻辣鸡翅 2023-6-29 20:42:06 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 02:15:33 | 显示全部楼层
    术数古籍专卖疤 2023-6-30 02:15:33 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 10:01:32 | 显示全部楼层
    心随674 2023-6-30 10:01:32 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 16:25:13 | 显示全部楼层
    123456819 2023-6-30 16:25:13 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    回复

    使用道具 举报

    发表于 2023-7-3 15:19:19 | 显示全部楼层
    普通人物怨 2023-7-3 15:19:19 看全部
    既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
    回复

    使用道具 举报

    发表于 2023-7-3 22:40:26 | 显示全部楼层
    落败的青春阳落s 2023-7-3 22:40:26 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    回复

    使用道具 举报

    发表于 2023-7-3 23:07:05 | 显示全部楼层
    无人岛屿颈 2023-7-3 23:07:05 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 知鸟论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表