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

简介: DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> demo %demo% 这是需要替换的页面    PHP页面的静态化很有必要,尤其是在CMS系统中,一些内容一旦生成,基本上不会有变化,这时如果用html将页面静态化,无疑会减少服务其解析PHP页面的负担。
+关注继续查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>

</head>
<body>
        <p style="color: #ff9000;">%demo%</p>
</body>
</html>

这是需要替换的页面 

 

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

无论是利用框架还是简单的脚本,原理基本一致:就是利用PHP进行文件操作,替换html模板中的动态元素,不仅能提高用户的访问速度还能让php与html分离,使代码更具有维护性。

 

用到的文件操作函数:

fopen()          --------------------       打开一个文件  函数有两个参数: 1.打开文件的路径和文件名  2.打开文件所用的模式(字符串形式)   这里用到了r 和 w r代表只读 w代表只写

feof()             --------------------       读取文件直到文件末尾    这个函数会在读取到文件的末尾返回true  那么就可以用while知道何时读完文件;函数有一个参数,1.打开的文件指针

fwiter()         --------------------         写入文件内容,函数有三个参数:1.写入的文件名称  2.写入的内容  3.(可选) 写入的最大字符数 

fclose()   ------------------------  关闭文件;一般做完所有操作后必须关闭文件;

 

注意事项: 需要注意文件的路径;以及读取文件所需要的权限  ;

 

php代码:

<?php
header("Content-type:text/html,charset=utf-8");
/******php静态化*******/
    class textHtml{
        public function fwriteHtml($r){
            /*php页面静态化技术
             *$r [array];
             *route=>生成文件名称及路径
             *html=>需要读取的静态资源
             *stsyem=>要替换的标签
             *content=>标签替换的内容
             * */
            
            $cfill = fopen($r["html"],"r");//读取的文件名
            $cfillnew = fopen($r["route"],"w");
            while(!feof($cfill)){
                $row = fgets($cfill);

$res = str_replace($r["stsyem"],$r["content"],$row); //替换内容
         fwrite($cfillnew,$res);//写入html文件 } /*关闭文件*/ fclose($cfill); fclose($cfillnew); } } $f = new textHtml; $fillname = microtime().".html"; $content = "这是一个页面静态化技术"; $r["route"] = $fillname; $r["html"] = "index.html"; $r["stsyem"] = "%demo%"; $r["content"] = $content; $f->fwriteHtml($r); ?>

最后得到的结果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>全国城市三级联动</title>

</head>
<body>
        <p style="color: #ff9000;">这是一个页面静态化技术</p>
</body>
</html>

利用php静态化技术可以更好的实现网页功能 ; 在创建文章或者一些不经常改变内容中都可以用到;

 

======================================================== 转载请注明出处。
目录
相关文章
|
8天前
|
关系型数据库 MySQL 数据库连接
PHP数据库驱动扩展与不同方式连接数据库方式技术详解
php的强大就是因为它有很多优质的扩展库!
18 0
PHP数据库驱动扩展与不同方式连接数据库方式技术详解
|
2月前
|
PHP
PHP的高端技术和概念
PHP的高端技术和概念
|
6月前
|
前端开发 JavaScript 数据处理
PHP的前端技术知识体系是什么?底层原理是什么?
PHP的前端技术知识体系是什么?底层原理是什么?
136 0
|
7月前
|
存储 前端开发 JavaScript
PHP开发web端聊天室,需要用到什么技术?底层原理是什么?
PHP开发web端聊天室,需要用到什么技术?底层原理是什么?
|
10月前
|
缓存 数据处理 PHP
PHP 缓存技术
PHP 缓存技术
|
12月前
|
PHP 开发者
《阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事-信海龙》电子版地址
阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事-信海龙
90 0
《阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事-信海龙》电子版地址
|
消息中间件 NoSQL 算法
php| 201809 技术小结
内容简介: - OpenSSL vs LibreSSL - swoole 4.1.0 添加 coroutine runtime 支持原生 redis/pdo/mysqli - php 实战 rabbitmq 任务队列: 多work + 协程 - QPS 限制: 令牌桶算法 + php 实战
174 0
|
缓存 PHP Apache
PHP中的九大缓存技术
1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms; 一种比较常用的实现方式是用输出缓存:2、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存(ESI技术,请baidu,此处不详讲)。
1101 0
|
SQL 缓存 分布式计算
疑问PHP各个初中高级应该掌握到哪些技术和掌握到什么程度, 看到文章终于大致明白了-高端PHP工程师都具备哪些技能
高端PHP工程师都具备哪些技能 1、初级PHP:Thinkphp,Yii,Laravel等驾轻就熟,增删改查必备。 版本控制 前端知识 服务器基本操作 数据库设计实现 2、中级PHP:get进阶技--数据库索引和优化自不必说,分表分库还是要有的,memcache和redis的使用频率不...
1216 0
|
Java PHP
PHP技术月刊第3期:因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug
云栖社区“世界上最好的编程语言”——PHP开始发布技术月刊啦。PHP技术月刊将会为大家介绍最新的PHP技术与动态、预告活动、最热问答以及技术直播等,欢迎大家订阅。 最新动态 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug遇到个 Java 和 Php 在获取客户端 cookie 方式不同导致跨系统的问题。
1281 0
相关产品
云迁移中心
推荐文章
更多