PHP 頁面靜態化 純靜態化 偽靜態化

2022-08-19 11:51:08 字數 1676 閱讀 2416

概念

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指令碼檔案進行解析,從資料庫查詢到該頁面所需要的資料,然後對頁面模板進行渲染,最後將乙個成品頁面展示給使用者。單次請求對於伺服器來說非常簡單,處理起來非常快,但是如果同時有成千上萬各使用者請求該頁面呢?這無疑是對資源的一種浪費,這就是我們...