文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP页面静态化的优缺点是什么

2023-07-05 04:06

关注

这篇文章主要介绍“PHP页面静态化的优缺点是什么”,在日常操作中,相信很多人在PHP页面静态化的优缺点是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP页面静态化的优缺点是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、页面静态化概念

静态化定义

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

静态页面

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

动态页面

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

静态化分类

静态化优点和缺点

优点:

缺点:

二、静态化实现

认识 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")。

代码如下(示例):

<!DOCTYPE html><html lang=""><head>    <meta charset="utf-8">    <title>网页静态化</title></head><body><h2>排名</h2><ul>    <?php for ($i = 1; $i <= 5; $i++) { ?>        <li>No.<?php echo $i; ?></li>    <?php } ?></ul><?php ?></body></html>

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

PHP页面静态化的优缺点是什么

使用PHP文件读写功能生成静态页面

代码如下(示例):

<?php$data = '<!DOCTYPE html><html lang=""><head>    <meta charset="utf-8">    <title>网页静态化</title></head><body><h2>排名</h2><ul>    <li>No.1</li>    <li>No.2</li>    <li>No.3</li>    <li>No.4</li>    <li>No.5</li></ul></body></html>';$fp = fopen("index.html", "w");if (!$fp) {    echo "System Error";    exit();}fwrite($fp, $data);fclose($fp);echo "生成 index.html 成功!";

其中"$data"数据是解析好的前端代码,若包含 PHP 原生代码是无法解析的,那如何把动态的 PHP 语言静态化?

PHP OB 缓存机制生成静态页面

代码如下(示例):

<?phpob_start();require_once('index.php'); // 引入模版文件$data = ob_get_contents();file_put_contents('index.html', $data); // 生成静态文件 index.htmlob_end_clean(); // 输出信息并清除缓存$fp = fopen("index.html", "w");if (!$fp) {    echo "System Error";    exit();}fwrite($fp, $data);fclose($fp);echo "生成 index.html 成功!";

其他

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页面静态化的优缺点是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯