php页面静态化

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

1、页面静态化分类

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

2、真静态的实现方法

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

模板文件template.htm:

<html> 
   <head> 
       <title>%title%</title> 
   </head> 
   <body> 
       <H1>%title%</H1> 
       <hr> 
       <pre>%body%</pre> 
    </body> 
</html> 
php文件:

<?php 
//Replace函数用于将从模版文件中读取的内容中的关键字替换成变量中的内容 
function Replace($row) 
{       
     $title = "文章标题";                            <span style="font-family: Arial, Helvetica, sans-serif;">//定义用来替换的变量</span>
     $body = "这里是文章主体";      
     $row = str_replace("%title%", $title, $row);    <span style="font-family: Arial, Helvetica, sans-serif;">//替换参数中的关键字 </span>
     $row = str_replace("%body%", $body, $row);      
     return $row;                                    <span style="font-family: Arial, Helvetica, sans-serif;">//返回替换后的结果 </span>
} 

$f_tem = fopen("template.htm","r");                 <span style="font-family: Arial, Helvetica, sans-serif;">//模版文件指针 </span>
$f_new = fopen("new.htm","w");                      <span style="font-family: Arial, Helvetica, sans-serif;">//生成的文件指针</span>
//循环读取模版文件,每次读取一行 
while(!feof($f_tem)) 
{ 
     $row = fgets($f_tem); 
     $row = Replace($row);                         //替换读入内容中的关键字 
     fwrite($f_new, $row);                         //将替换后的内容写入生成的HTML文件 
} 
fclose($f_new);                                   <span style="font-family: Arial, Helvetica, sans-serif;">//关闭文件指针</span>
fclose($f_tem); 
?>
        [2]通过php程序写静态文件,这里提供一个简单案例
<?php  
    ob_start(); 
?> 
<html>
    <head>
        <title>这个程序叫测试</title>
    </head>
    <body>
         这个是测试
    <body>
</html>
<?php 
    $out1 = ob_get_contents();  
    ob_end_clean();  
    $fp = fopen("ceshi.html","w");  
    if(!$fp)  
    {  
         echo 文件不存在";  
         exit();  
    }  
    else 
    {  
         fwrite($fp,$out1);  
         fclose($fp);  
         echo "Success";  
     }  
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值