>백엔드 개발 >PHP 튜토리얼 >php页面静态化

php页面静态化

WBOY
WBOY원래의
2016-06-23 13:50:42920검색

目前CMS系统多采用了页面静态化,这样做的好处是:一是能减轻其服务器的负担,二是因为生成了HTML静态页面,所以其网站被搜索引擎搜索到的机率更大一些,也就是为了网站推广。

1、页面静态化分类

        真静态:通过程序生成静态页面文件,当我们访问的时候,就是直接访问的静态页面。
        伪静态:是动态的网址看起来像静态的网址。换句话说就是,动态网页通过重写 URL 方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面。具体可以参考前面章节:http://blog.csdn.net/zhao1234567890123456/article/details/38569139

2、真静态的实现方法

        [1]利用模版生成静态文件,通过自己编写的文件或者是其他框架,例如:Smarty可以实现网站静态化。这里提供一个通过一个简单程序来理解利用模版生成静态文件。

模板文件template.htm:

[html] view plain copy print ?

  1.   
  2.      
  3.        %title%  
  4.      
  5.      
  6.       

    %title%

      
  7.       
      
  8.       
    %body%
      
  9.       
  10.   
php文件:

[php] view plain copy print ?

  1. //Replace函数用于将从模版文件中读取的内容中的关键字替换成变量中的内容  
  2. function Replace($row)  
  3. {        
  4.      $title = "文章标题";                            //定义用来替换的变量 
  5.      $body = "这里是文章主体";       
  6.      $row = str_replace("%title%", $title, $row);    //替换参数中的关键字  
  7.      $row = str_replace("%body%", $body, $row);       
  8.      return $row;                                    //返回替换后的结果  
  9. }  
  10.  
  11. $f_tem = fopen("template.htm","r");                 //模版文件指针  
  12. $f_new = fopen("new.htm","w");                      //生成的文件指针 
  13. //循环读取模版文件,每次读取一行  
  14. while(!feof($f_tem))  
  15. {  
  16.      $row = fgets($f_tem);  
  17.      $row = Replace($row);                         //替换读入内容中的关键字  
  18.      fwrite($f_new, $row);                         //将替换后的内容写入生成的HTML文件  
  19. }  
  20. fclose($f_new);                                   //关闭文件指针 
  21. fclose($f_tem);  
  22. ?> 
        [2]通过php程序写静态文件,这里提供一个简单案例

[php] view plain copy print ?

  1.     ob_start();  
  2. ?>  
  3.  
  4.      
  5.         这个程序叫测试 
  6.      
  7.      
  8.          这个是测试 
  9.      
  10.  
  11.     $out1 = ob_get_contents();   
  12.     ob_end_clean();   
  13.     $fp = fopen("ceshi.html","w");   
  14.     if(!$fp)   
  15.     {   
  16.          echo 文件不存在";   
  17.          exit();   
  18.     }   
  19.     else  
  20.     {   
  21.          fwrite($fp,$out1);   
  22.          fclose($fp);   
  23.          echo "Success";   
  24.      }   
  25. ?> 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.