php页面静态化

<?php
/**
 * php页面静态化
 * 静态化分为 真静态和伪静态
 * 静态化的有点在于 SEO 和 安全性 使用缓存机制还可以大大提高网站的速度
 */

/**
 * php自带的缓存机制
 * 需要在php.ini中进行配置
 * 或者使用ob_start()-> output_buffering:on
 * 关于几个缓存的函数:ob_start();ob_clean();ob_get_content();ob_end_clean();关闭缓存同时清空
 * ob_flush();输出缓存里面的内容并且清空,但是不关闭 ob_end_flush();关闭同时输出
 */

/**/
ob_start();//开启缓存
echo ‘yyy‘;//没有开启缓存的情况下会报错,因为没有遇到header的时候,php默认发送一个header,这个header无法修改
header(‘content-type:text/htm;charset=utf-8‘);
echo ‘123‘;
ob_get_contents();//得到缓存的内容
ob_end_clean();
echo ‘aa‘;//放在程序缓存里面
header(‘content-type:text/htm;charset=utf-8‘);//运行的时候会报错,因为缓存已经关闭

/*
 * 利用php自带的缓存机制做真缓存
 * 真缓存的页面的内容应该是长期都不需要变的,并且不同用户看到的东西都是一样的
 * 原理:用户第一次访问的时候查询数据库,然后得到缓存区的内容,并且放到缓存文件里面
 * */
/**
 */
ob_start();
//判断缓存文件是否存在
$html_filename=‘static.html‘;
if(file_exists($html_filename) &&  (filemtime($html_filename)+30) > time())//超过30秒则重新生成
{
    //直接取出缓存页面的内容
    echo file_get_contents($html_filename);
    exit;

}
echo ‘Your content‘;
$html_content=ob_get_contents();
$html_filename=‘static.html‘;
file_put_contents($html_filename,$html_content);

/*
 *  * 上述原理的缺陷:1.实时性不够  2.不利于seo优化
 * 解决办法:在数据库发生增加和更新的时候更新缓存文件
 * */

if($_REQUEST[‘act‘] == ‘add‘)//update 也是
{
  //先获取模版文件
  $template_content=file_get_contents(‘template.tpl‘);
  //替换标签
  $php_content=str_replace("{",‘<?php echo ‘,$template_content);
  $php_content=str_replace("}",‘?>‘,$template_content);
  //生成缓存文件
  $php_tplname=‘php_tpl.php‘;
  file_put_contents($php_tplname,$php_content);
  include(file_put_contents);
  $html_content=ob_get_contents();
  $html_filename=‘static.html‘;
  file_put_contents($html_filename,$html_content);

}

/**
 * 真静态的缺陷:生成的 缓存文件很多,占硬盘
 * 对于海量的html生成,可以考虑用伪静态
 */

$str=‘123,33,333‘;
preg_match(‘/\d\d\d\d/is‘,$str,$arr);//匹配连续四个出现的数字 返回到arr 只是匹配一个 arr[0]
preg_match(‘/(\d)(\d)/is‘,$str,$arr);//这时候arr返回三个 0放置匹配的字符串,arr[n]按照表达式顺序返回匹配的字符串

//对于需要全部匹配的使用preg_match_all()函数;正则表达式里面需要‘‘ 不要使用""

/**
 * 使用apache的rewrite机制
 * 注意点:apache的配置 开启rewrite module 也要设置derectory的权限 allowoverride from all
 * 文件 .htacss //匹配规则是从上而下的,可以设置error页面
 * RewireEngine On
 * news-id(\d)\.html$  news.php?id=$1
 * news-id(\d).html$    error.php      #错误页面放到最后
 */
时间: 2024-10-15 22:59:49

php页面静态化的相关文章

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面有很多:1,使用缓存,最传统的一级二级缓存:2,将服务和数据库分开,使用不同的服务器,分工更加明确,效率更加高:3,分布式,提供多台服务器,利用反向代理服务器nginx进行反向代理,将请求分散开来:4,数据库的读写分离,不同的数据库,将读操作和写操作分开,并实时同步即可:5,分布式缓存,使用memc

一个做页面静态化的php类

<?phpnamespace Common;/* * * 功能:页面静态化的创建和删除 * 创建:当且仅当,一个页面需要被静态化并且还未静态化时. * 删除:当且仅当,一个页面存在静态化页面并且需要被重新静态化时. * * 作者:郭军周 * * 注 :本类基于ThinkPHP3.2,或者其他具有"单一入口且MVC模式"的其他php框架. * * 使用方式:在Controller的构造方法中获取其对象:在Controller的销毁方法里,用其对象的_static方法. * 例:XX

页面静态化1---概念(Apache内置压力测试工具使用方法)

三个概念 ①静态网址: http://127.0.0.1/regis.html ②动态网址:在请求页面时可以动态的传一些值进去. http://127.0.0.1/regis.php?id=45&title=今天天气不错 ③伪静态网址: 伪静态仅仅是对动态网址的一个重写,伪静态网址不能让动态网址静态化,搜索引擎不会认为伪静态就是HTML文档,其次伪静态可取,但是应把重心放在取出冗余参数.规范URL,竟可能的避免重复也等等. 举例说明:http://v.youku.com/v_show/id_XM

页面静态化2--- PHP缓存机制完成页面静态化

我们可以使用PHP自带的缓存机制来完成页面静态化,但在这里,需要说明一点,仅靠PHP缓存机制并不能完美的解决页面静态化,往往需要和其他页面静态技术(通常是伪静态技术)结合使用 例子: 当访问一个页面时,先判断是否存在缓存,存在则直接输出缓存文件中的内容,否则,先查询数据库,获得数据,生成缓存文件. 详解PHP缓存机制: output_buffering,常用的函数 ob_start() ob_get_contents() ob_clean() ob_end_clean() ob_flush()

[项目构建 九]babasport 页面静态化技术Freemarker技术的介绍及使用实例.

一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 果就不会再发生变化(除非你修改页面代码).而动态网页则不然,页面代码虽然没有发生变化,但是显示的内容却是可以随着时间.环境或者数据库操作的结果而 发生相应的变化.简而言之,动态网页是基本的HTML语法规范与java.VB.VC等高级程序设计语言.数据库编程等多种技术的融合,以实现对网站内容 和风格

网站优化—页面静态化技术

数据库检索的问题 主要是为了减少数据库的操作,让MySQL能够提供更强大的服务 ? 使用缓存技术 磁盘缓存:就是将用户请求数据库的数据,保存到磁盘文件形成一个静态的HTML文本,下次用户的访问的时候,直接返回该HTML文本. 内存缓存:将MySQL的数据取出之后,保存到内存(memcache,不算一个NOSQL数据库,但是是一个缓存系统)之中,下次直接从内存中返回.(效率非常高) 注意:只要不使用sql语句作为查询条件的数据库(仓库)就叫做NOSQL数据库 优化MySQL 设计:存储引擎的选择,

PHP网站页面静态化之OB法

将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一. 其他还有模板替换法,opcache等方法. 静态化的作用: 提高网站的响应速度,降低服务器的负载: 用于搜索引擎的SEO: 利用PHP输出buffer直接写成html,定时后台定时扫一遍网站,是比较容易实现的网页静态化. 静态化之前: <?php for($i=0;$i<1000;$i++){ echo "bull<br>"; } ?> 静态化: <?php ob_start();

ASP.NET页面静态化 之 (伪静态)

1.页面为何要静态化 有利于搜索引擎优化(SEO) 使页面URL看起来更正规 真静态 的效率更高,并且更安全,HTML页面不会受Asp.Net相关漏洞的影响: 2.伪静态原理 其原理就是,在一个页面请求的执行期间将伪静态的URL重写成真实的URL路径: 3.那种条件下需要静态化 一个页面经常被访问,并且页面内容基本不变的: 所有用户访问的页面内容基本一样的. 例如:(新闻模块) 4.下面开始带领大家写一个伪静态的案例(新闻模块) (1)先创建新闻模块数据库 T_Channels表,存储新闻类别

Asp.net动态页面静态化之初始NVelocity模板引擎

Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并