概念
php靜態化分為:純靜態化 和 偽靜態化;純靜態化又分為:區域性靜態化 和 完全靜態化
純靜態化:是把php生成的動態頁面儲存成靜態的html檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,
區域性靜態化:是生成的靜態檔案中,有區域性的資料還是通過ajax技術動態獲取的;
完全靜態化:即不存在動態獲取資料的情況,所以內容都來自靜態的html頁面
偽靜態化:apache伺服器rewrite配置
純靜態化的實現
利用php內建的ob函式實現頁面的靜態化,大概步驟如下:
<?php ob_start();//開啟快取
?>
我是要生成的靜態內容,也可以在該處鏈結資料庫生成動態內容於此
<?php
file_put_contents( 'index.html', ob_get_clean() );//把生成的靜態內容儲存到index.html檔案,而不是輸出到瀏覽器
?>
觸發系統生成純靜態化頁面
方法:頁面新增快取時間;手動觸發
頁面新增快取時間
<?php$file_name = 'index.html';
if(file_exists( $file_name ) && filemtime( $file_name ) - time() < 10 )else
如果後台資料存在更細,定時重新整理不能及時更改靜態頁面,怎麼辦?所有引入了手動觸發的功能
linux下的crontab定時掃瞄程式
*/5****php/data/static/index.php
php偽靜態
apache伺服器rewrite配置
在httpd.conf檔案中,找到
#注釋:去掉前邊的" # "開啟rewrite服務,重啟伺服器生效#loadmodule rewrite_module modules/mod_rewrite.so
#注釋:http-vhosts.conf檔案是虛擬網域名稱配置的檔案,開啟改檔案可以配置虛擬網域名稱,一般預設是開啟的
rewrite偽靜態配置
serveradmin [email protected]documentroot "c:/apache24/docs/dummy-host.example.com"servername dummy-host.example.com
serveralias www.dummy-host.example.com
errorlog "logs/dummy-host.example.com-error.log"customlog "logs/dummy-host.example.com-access.log"common
#配置規則如下所示
rewriteengine on
rewriterule ^/vidio/([0-9]*).html$ /vidio.php?id=$1
也可用.htacess檔案,放在**目錄下,無需重啟伺服器。
PHP 頁面靜態化 純靜態化 偽靜態化
概念 php靜態化分為 純靜態化 和 偽靜態化 純靜態化又分為 區域性靜態化 和 完全靜態化 純靜態化 是把php生成的動態頁面儲存成靜態的html檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,區域性靜態化 是生成的靜態檔案中,有區域性的資料還是...
PHP實現頁面靜態化 純靜態化及偽靜態化
php靜態化分為 純靜態化 和 偽靜態化 純靜態化又分為 區域性靜態化 和 完全靜態化 純靜態化 是把php生成的動態頁面儲存成靜態的html檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,區域性靜態化 是生成的靜態檔案中,有區域性的資料還是通過a...
PHP頁面靜態化 純靜態與偽靜態用法詳解
當使用者訪問乙個不經常更新的web頁面,php接到指示對php指令碼檔案進行解析,從資料庫查詢到該頁面所需要的資料,然後對頁面模板進行渲染,最後將乙個成品頁面展示給使用者。單次請求對於伺服器來說非常簡單,處理起來非常快,但是如果同時有成千上萬各使用者請求該頁面呢?這無疑是對資源的一種浪費,這就是我們...