Heim > php教程 > php手册 > php页面静态化 适用于添加 更新文章内容 模板文件生成html

php页面静态化 适用于添加 更新文章内容 模板文件生成html

WBOY
Freigeben: 2016-06-06 20:01:57
Original
958 Leute haben es durchsucht

一 页面静态化有利有弊 合理的使用php生成html完成网站 静态化设计 1 有利于seo 2 有利于对于一些不经常更新的内容 提高访问效率 二 两种方式去实现静态化 1. 使用文件函数得到静态页面的模板字符串,然后用str_replace函数将需要替换的东西替换了再写入到

一  页面静态化有利有弊 合理的使用php生成html完成网站 静态化设计

1  有利于seo

2  有利于对于一些不经常更新的内容 提高访问效率

二  两种方式去实现静态化

1. 使用文件函数得到静态页面的模板字符串,然后用str_replace函数将需要替换的东西替换了再写入到新的文件中。
2. 利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中。

本文只讲第一种方式 后续会更新第二种

1 简单的html页面用于添加文章

<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->

    
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
            a:link{
                color:rgb(10,10,10);
                text-decoration: none;
            }
           form ul li{
                list-style: none;
               }
        </style>
        <script charset="utf-8" src="mykindeditor/kindeditor.js"></script>
        <script charset="utf-8" src="mykindeditor/lang/zh_CN.js"></script>
        <script>
        KindEditor.ready(function(K) {
                window.editor = K.create(&#39;#editor_id&#39;);
        });
        </script>
    
    
       
Nach dem Login kopieren
  • 标题
  • 作者
  • 内容
2 添加文章处理页面
<?php header("Content-type:text/html;charset=utf-8");
require &#39;common/fileGenerate.class.php&#39;;
require &#39;common/connect.class.php&#39;;
$title=htmlspecialchars($_POST[&#39;title&#39;]);
$autoher=htmlspecialchars($_POST[&#39;autoher&#39;]);
$content=htmlspecialchars($_POST[&#39;content&#39;]);
$db=new connect();
$sql="insert into artnews(title,content,autoher)VALUES(&#39;$title&#39;,&#39;$content&#39;,&#39;$autoher&#39;)";
$insert_id=$db->query($sql);
$filename=date('Ymdhis')."_".$insert_id.".html";
$fileGenerate=new fileGenerate();
$fileGenerate->htmlfile($filename,$title,$autoher,$content);
?>
Nach dem Login kopieren
3 生成文件类
<?php /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 * Description of fileGenerate
 *
 * @author Administrator
 */
class fileGenerate {
    //html文件按照模板生成函数
    public function htmlfile($filename,$title,$autoher,$content){ 
        //判断静态文件是否存在不存在直接生成 存在删除重新生成
        if(file_exists($filename)){
            unlink($filename);
        }else {            
            $filemodel="art.html";                        //#模板地址
            $file=fopen($filemodel,"rb");                 //#打开模板,得到文件指针
            $temp=fread($file,filesize($filemodel));      //#得到模板文件html代码
            //替换摸版中的内容
            $temp=str_replace("[title]",$title,$temp);
            $temp=str_replace("[autoher]",$autoher,$temp);
            $temp=str_replace("[content]",$content,$temp);
            //生成html文件            
            fwrite(fopen("html/"."$filename","wb"),$temp); #$filename是静态页面的文件名
            if(file_exists("html/"."$filename")){
                echo &#39;html生成完成&#39;;
            }else{
                echo &#39;html生成失败&#39;;
            }
        }
    }
    
}
Nach dem Login kopieren
4 数据库连接
<?php /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 * Description of connect
 *
 * @author Administrator
 */
class connect {
    //数据库连接
    private $host;
    private $user;
    private $pwd;
    private $dbname;
    private $port;
    private $charset;
    public function __construct(){
        $this->host='localhost';
        $this->user='root';
        $this->pwd='';
        $this->dbname='phptest';
        $this->charset='set names utf8';
        $this->getConnect();
    }
    public function getConnect(){
        $con=@mysql_connect($this->host,$this->user,$this->pwd);
        mysql_select_db($this->dbname)or die("not found.$this->dbname");
        mysql_query($this->charset);
    }
    function query($sql){
        mysql_query($sql);
        return $insert_id=mysql_insert_id();
    }
}
Nach dem Login kopieren
下面给出 源码 数据库sql文件 的下载地址

http://pan.baidu.com/s/1gdIJAPd

有什么不足或是建议 也请大家评论留言




Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage