僞靜態你們應該知道
例如你的php頁面生成的頁面爲xxx.php?id=1
爲了seo和容易被百度等搜索引擎抓取,也爲了防止高併發的時候佔用服務器資源
咱們應該把xxx.php?id=1頁面的連接顯示爲xxx_1.html等相似格式,反正就是.html爲後綴。php
我本身沒有深刻研究這個,可是我簡單實現了這個。html
1 簡單的列表mysql
<?php //鏈接數據庫 $con = mysql_connect("localhost","root","root"); //選擇數據庫 mysql_select_db("test", $con); //查詢數據庫 $result = mysql_query("SELECT * FROM list"); //遍歷輸出數據庫 while($row = mysql_fetch_array($result)) { $url = $row["url"]; $id = $row["id"]; if(empty($url)){ echo "<a href='p.php?id=$id'/>$row[title]</a><br/>"; }else{ echo "<a href='http://localhost/20180417/$url'/>$row[title]</a><br/>"; } } mysql_close($con); ?>
如圖:sql
此時,全部的標題超連接顯示的都是p.php?id=x
重要的是p.php頁面數據庫
p.php遍歷輸出的時候
查詢了數據庫url字段,若是爲空,那麼就開始進行file_get_contents獲取整個頁面的html代碼,而後把代碼寫入到一個名爲LKY_$id.html的html文件,其中$id是當前頁面的id,若是當前頁面id=1,那麼生成的文件名爲LKY_1.html,接着就把這個文件名更新到數據庫的url字段服務器
<!DOCTYPE html> <html> <head> </head> <body> <?php //鏈接數據庫 $con = mysql_connect("localhost","root","root"); //選擇數據庫 mysql_select_db("test", $con); //得到id $id =$_GET["id"]; //查詢數據庫 $result = mysql_query("SELECT * FROM list where id =".$id); //遍歷輸出數據庫 while($row = mysql_fetch_array($result)) { $url = $row["url"]; if(empty($url)){ $get_html = "http://localhost/20180417/get_html.php?id=$id"; $html_utl = "LKY_$id.html"; $con_html = file_get_contents($get_html); $html = fopen($html_utl, "w"); fwrite($html, $con_html); fclose($html); echo $row["zhengwen"]; mysql_query("UPDATE list SET url = '$html_utl' WHERE id = '$id'"); }else{ echo $row["zhengwen"]; } } mysql_close($con); ?> </body> </html>
當用戶訪問xxx.p.php?id=1的時候,就會進行查詢數據庫,若是url字段爲空,那麼就獲取整個頁面的html,這個獲取html頁面的來源又用一個get_html.php進行獲取併發
<!DOCTYPE html> <html> <head> </head> <body> <?php //鏈接數據庫 $con = mysql_connect("localhost","root","root"); //選擇數據庫 mysql_select_db("test", $con); //得到id $id =$_GET["id"]; //查詢數據庫 $result = mysql_query("SELECT * FROM list where id =".$id); //遍歷輸出數據庫 while($row = mysql_fetch_array($result)) { echo $row["zhengwen"]; } mysql_close($con); ?> </body> </html>
獲取到了以後生成html文件並保存在服務器咱們指定的目錄,若是訪問xxx.p.php?id=1,判斷url字段不爲空,則直接輸出該頁數據或者跳轉到LKY_1.html高併發
那麼在首頁的列表中也作了相應的判斷,判斷url是否爲空,若是爲空,那麼輸出的是p.php?id=1的超連接,不然從數據庫取url字段的html文件名,則輸出LKY_1.htmlfetch
要說的是,這是實實在在生成html文件的!搜索引擎