偽靜態:
①減少伺服器對資料響應的負荷;
②載入不用調動資料庫
③方便優化引擎
但同時伴隨著缺點:
①生成的真靜態檔案多,伺服器對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檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,區域性靜態化 是生成的靜態檔案中,有區域性的資料還是...