頁面靜態化3 偽靜態技術

2022-05-21 07:16:37 字數 2040 閱讀 2437

偽靜態

①減少伺服器對資料響應的負荷;

②載入不用調動資料庫

③方便優化引擎

但同時伴隨著缺點:

①生成的真靜態檔案多,伺服器對html檔案的響應負擔也比較重;

②空間占用比較大。

如果乙個系統使用真靜態進行頁面靜態化,需要生成海量的靜態頁面,我們可以考慮使用偽靜態來處理

目前業內最喜歡用的乙個技術是(偽靜態技術+ob的組合)技術

首先複習以下正規表示式:

//php中如何使用正規表示式?---案例

$str = '

abcdeft1234 ghirh 5656;

//①要求:把4個連續的數照出來?//解:

preg_match(

'/(\d)(\d)(\d)(\d)/si

', $str, $arr);

//preg_match()函式只匹配乙個滿足要求的字串就停止匹配,$arr[0]用來儲存 滿足正則表達的字串,

//$arr[1]匹配模式中第乙個字表達的結果,

//$arr[2]匹配模式中第二個表示式的結果

//$arr[n]匹配模式中個第n個表示式的結果

preg_match_all(

'/(\d)(\d)(\d)(\d)/si

', $str, $arr);

//preg_match_all();匹配所有滿足條件的字串,並且將結果放在$arr中,$arr[0]是匹配到的所有結果

//$arr[0][0]匹配存放第乙個匹配結果,$arr[0][1]匹配存放的第二個匹配結果

//$arr[1][0]是第一匹配到的結果中的第乙個子表示式1,$arr[n][m]是是第n個匹配到的結果中的第m個子表示式

//②找三個數相同且相連的數 -- 找到 000-666-222

$str = "

000-666-222 jfkdjkfd234-900-098 89";

解:  preg_match(

'/(\d)\1-(\d)\2-(\d)\3/si

', $str, $arr);

特別說明:當正規表示式中有反向引用的時候,那麼正規表示式使用單引號!!!!

觀察此頁:

apache伺服器認為:category.php是檔案,而之後的345,1,22是跟的引數

那麼通過瀏覽器輸出的內容就是category.php的內容

所以這樣寫的**不利於seo

如何動態取出345、1、22這三個值???

方法1:php正規表示式

①獲取345-1-22.html

$pathinfo = $_server['

path_info'];

if (pre_match('

/^\/(\d+)-(\d+)(\d+)\.html$/si

', $pathinfo, $arr))

else

練習:獲取位址如,http://localhost/news-sports-id67.html 獲取這個位址中的news,sports,id67

if (preg_match('

/^\/(\w+)-(\w+)-(\w+)\.html$/is

', $_server['

path_info

'], $arr))

else

問題:當直接在瀏覽器輸入http://localhost/news-sports-id67.html的時候訪問結果與訪問http://localhost/news.php/news-sports-id67.html結果相同

方法2:apache的rewrite機制  

apache的rewrite機制下一節繼續!

頁面靜態化 偽靜態

1 先提出乙個問題 假設我的網域名稱為 www.servername.com,能否實現www.servername.com aaa bbb.html實際上是訪問www.servername.com ccc ddd.php?問題分析 首先,www.servername.com實際上已經確定了ip和埠號...

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

概念 php靜態化分為 純靜態化 和 偽靜態化 純靜態化又分為 區域性靜態化 和 完全靜態化 純靜態化 是把php生成的動態頁面儲存成靜態的html檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,區域性靜態化 是生成的靜態檔案中,有區域性的資料還是...

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

概念 php靜態化分為 純靜態化 和 偽靜態化 純靜態化又分為 區域性靜態化 和 完全靜態化 純靜態化 是把php生成的動態頁面儲存成靜態的html檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,區域性靜態化 是生成的靜態檔案中,有區域性的資料還是...