thinkphp 頁面靜態化


頁面靜態化代碼在最后

靜態頁面

 

是網頁的代碼都在頁面中,不需要執行asp,php,jsp,.net等程序生成客戶端網頁代碼的網頁,靜態頁面網址中一般不含“=”“&”等特殊符號 注意:靜態頁面並非網站上沒有動畫的就是靜態頁面。

 

動態頁面

 

是通過執行asp,php,jsp,.net等程序生成客戶端網頁代碼的網頁。常見的擴展名有:.asp .php .jsp .cgi.aspx 等。 注意:動態頁面的“動態”是網站與客戶端用戶互動的意思,而非網頁上有動畫的就是動態頁面。

 

什么是PHP靜態化

就是使網站生成頁面以靜態HTML的形式展現在訪客面前,PHP靜態化分純靜態化和偽靜態化,兩者的區別在於PHP生成靜態頁面的處理機制不同。

為什么要讓網頁靜態化

一、加快頁面打開瀏覽速度,靜態頁面無需連接數據庫打開速度較動態頁面有明顯提高;
二、有利於搜索引擎優化SEO,Baidu、Google都會優先收錄靜態頁面,不僅被收錄的快還收錄的全;
三、減輕服務器負擔,瀏覽網頁無需調用系統數據庫;
四、網站更安全,HTML頁面不會受php相關漏洞的影響; 觀看一下大一點的網站基本全是靜態頁面,而且可以減少攻擊,防sql注入。

數據庫出錯時,不影響網站正常訪問。
生成html文章雖操作上麻煩些,程序上繁雜些,但為了更利於搜索,為了速度更快些,更安全,這些犧牲還是值得的。

thinkPHP實現靜態頁的方法-buildHtml

簡版

public function index(){
    $info = $this->buildHtml("realindex1.html", '  ', 'blogs/index');

//                              生成的靜態頁名稱   ②目錄 ③方法名
    dump($info);
}

在需要生成靜態頁的函數里加入上面代碼可以自動生成你想要的靜態頁面

 

 

完整版
 //首頁顯示
public function index(){
    if(file_exists(HTML_PATH.'realindex.html')){//file_exists檢查文件是否存在 if(time()-filemtime(HTML_PATH.'realindex.html')<=600)//filemtime() 函數返回文件內容上次的修改時間。
            $this->display(HTML_PATH."realindex.html");
        else
            $this->createIndex();//調用(將首頁生成為一個靜態頁面)的函數
    }else{
        $this->createIndex();
    }
}
 //將首頁生成為一個靜態頁面
private function createIndex(){
    $user = M('user');
    $uid = $_SESSION['uid'];
    $blog = M('blog');
    $fenlei = M('blogclass');
    $i = $user->where("uid=$uid")->find();
    $datas = $blog->table('blog b,user u')->where("b.uid=u.uid and bisvalid=1")->limit(0, 10)->select();
    $data = $fenlei->select();
    //統計閱讀量
    $yueduliang = $blog->table('blog b,userblog ub')->where("b.bid=ub.bid and ub.isvalid=1")
        ->field('b.bid,b.bbiaoti,count(ub.bid) ubnum')->group('b.bid')->order('ubnum desc')->select();
    //統計評論量
    $pinglunliang = $blog->table('pinglun p,blog b')->where("p.bid=b.bid and p.pstatus=1 and p.pisvalid=1 ")
        ->field('b.bid,b.bbiaoti,count(p.pid) pnum')->group('b.bid')->order('pnum desc')->select();
    $this->assign('name', $i['uloginname']);
    $this->assign('data', $datas);
    $this->assign('fenlei', $data);
    $this->assign('yueduliang', $yueduliang);
    $this->assign('pinglunliang', $pinglunliang);
    $this->buildHtml("realindex.html", '', 'blogs/index');
    $this->display('blogs/index');
}

 

顯示頁面就不截圖了

 

 

歡迎交流QQ634487911

       微信:CP-634487911


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM