用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php中静态化生成的方法

时间:2015-01-23  来源:西部数据  作者:西部数据

在php中原生态的生成html页面我们会用到三个函数:ob_start()、ob_get_contents()、ob_end_clean()了,然后再把获取的内容给fopen函数生成即可.

例子,利用三个函数:ob_start()、ob_get_contents()、ob_end_clean()函数

知识点:

1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等.

2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容.

3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False.

输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。

PHP生成静态页面实例代码,代码如下:

  1. <?php  
  2.     ob_start();  
  3.  
  4.     echo "<html>".   
  5.     "<head>".   
  6.     "<title>PHP网站静态化教程</title>".   
  7.     "</head>".   
  8.     "<body>欢迎访问PHP网站开发教程网www.111cn.net 本文主要介绍PHP网站页面静态化的方法</body>".   
  9.     "</html>";   
  10.       
  11.     $out1 = ob_get_contents();   
  12.     ob_end_clean();   
  13.     $fp = fopen("leapsoulcn.html","w");   
  14.     if(!$fp)   
  15.     {   
  16.     echo "System Error";   
  17.     exit();   
  18.     }   
  19.     else  
  20.     {   
  21.     fwrite($fp,$out1);   
  22.     fclose($fp);   
  23.     echo "Success";   
  24.     }   
  25. ?> 

例子,利用框架模板生成最近比较火的php框架有thinkphp下面我们就以它为例子.

thinkphp提供了一个有效的生成静态页的方法,在tp2.0的手册上有说明,3.0的手册上没有说明了,不过3.0方法还是存在的,代码如下:

$this->buildHtml('静态文件', '静态路径','模板文件');

参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项 目路径/Html/a/index.html(默认的静态路径在项目路径的Html文件夹下,没有可以自己创建)

参数二:静态路径,上面已经说明了默认的路径,3.0中可以在入口文件里加入参数来更改静态路径。 define('HTML_PATH', './');(将静态路径义为网站根目录)

参数三:模板文件,我感觉官方这个描述是不正确的,准确的来说应该是目标模块,就是需要生成静态文件的模块。格式:模块名:操作。比如要生成Index下的a方法为静态文件,那就是Index:a。如果为空则默认生成当前操作的静态文件。

1,在入口文件index.php文件中定义生成静态页面的文件位置,然后在个目录新建Html文件夹,代码如下:

define( 'HTML_PATH' , './Html' );//www.phpfensi.com

2,在根目录的config文件夹中的config.php配置静态页面的类型,设为 html,代码如下:

 'HTML_FILE_SUFFIX'        = > '.html' , // 默认静态文件后缀 

3 、在“Tpl / default / ”目录中新建一个Index的文件夹,文件夹下面新建一个index.html的模板,模板里面内容为"这是生成静态页例子

4 、控制器IndexAction. class .php中的代码,代码如下:

  1. class IndexAction extends Action{ 
  2.   public function index(){ 
  3.     $this - > buildHtml( '名称' ,HTML_PATH. '/' , '模版' , 'utf8' ); //注意:这里的utf8不能写成utf-8 
  4.     $this - > display();  
  5.  } 

解释:这里的buildHtml是thinkphp内置的函数,这里的意思是,将index的模板文件生成utf8编码格式的静态网页,该文件名为 1 .html,存在于根目录的htm文件中,该函数有 5 个参数,具体如下:

buildHtml($htmlfile,$htmlpath,$templateFile,$charset,$contentType = 'text/html' )

参数:

$htmlfile 生成的静态文件名称

$htmlpath 生成的静态文件路径

$templateFile 指定要生成静态的模板文件

$charset 生成静态文件的编码格式

$contentType 生成静态文件的类型

php生成静态页,代码如下:

  1. class AddhtmlAction extends CommonAction { 
  2.     public function index(){ 
  3.         $this->assign('abc''abc222222222'); 
  4.         $pagename = '123 www.phpfensi.com';  //页面名称 
  5.         $temppath = '';        //显示模版路径 
  6.         //查看配置文件是否开启显示静态模版 
  7.         if(C('IS_HTML')) 
  8.         { 
  9.             //判断是否已经生成静态页面 
  10.             if(!is_file(HTML_PATH . '/'$pagename .'html')) 
  11.                 $this->buildHtml($pagename, HTML_PATH.'/''index''utf8');//注意:index为动态模版 这里的utf8不能写成utf-8 
  12.             $temppath = HTML_PATH . '/'$pagename .'html'
  13.         } 
  14.         $this->display($temppath); 
  15.     } 
  16. }
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门