本人因?yàn)橐胱约簩?xiě)個(gè)小說(shuō)網(wǎng)站練練手,在其中遇到的一些問(wèn)題,將其解決方法總結(jié)出來(lái),例如:
1:小說(shuō)網(wǎng)站存儲(chǔ)了大量的小說(shuō),每個(gè)小說(shuō)主頁(yè)都很相似,url不同,不是使用的history屬性改寫(xiě)的,所以如果人工想寫(xiě)的話,那工作量就很大
如下圖,用起點(diǎn)小說(shuō)網(wǎng)來(lái)參考,放上我最愛(ài)的兩本書(shū)
在這里我們將其url都當(dāng)成html文件,不考慮url重寫(xiě)問(wèn)題
所以,今天我就將我的解決方案放入其中,算是批量生成html文件
先寫(xiě)個(gè)數(shù)據(jù)提交網(wǎng)頁(yè):文件名為other.html
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <!--輸入你想讓顯示的內(nèi)容--> 9 <input type="text" name="name" id="name" value="" />10 <!--提交ajax-->11 <button id="btnn">提交</button>12 <!--提交成功后,則會(huì)通過(guò)數(shù)據(jù)庫(kù)連接獲取連接地址-->13 <a href="" target="_blank"></a>14 <!--js-->15 <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>16 <script type="text/javascript">17 $("#btnn").on('click',function(){18 var name = $("#name").val();19 //jq 的ajax請(qǐng)求20 $.ajax({21 type:"post",22 url:"//127.0.0.1:9090/Project01/php/creathtml.php",23 async:true,24 data:{"name":name},25 dataType:"JSON",26 success:function(r){27 console.log(r.token);28 var hr="http://127.0.0.1:9090/Project01/php/ceshi/"+r.token+".html";29 $('a').attr('href',hr);//改變a鏈接地址30 $('a').text(r.token);//改變a鏈接訪問(wèn)跳轉(zhuǎn)31 }32 });33 })34 </script>35 </body>36 </html>
接下來(lái)為php處理接受數(shù)據(jù):文件名為creathtml.php
1 <?php 2 //引入mysql連接配置 3 require './config.php'; 4 //接受other.html ajax請(qǐng)求過(guò)來(lái)的數(shù)據(jù) 5 $name = $_POST['name']; //ajax的data:{"name":name} 6 7 //判斷$name是否存在 8 if (isset($name)) { 9 //mysql查詢語(yǔ)句10 $query_select = 'SELECT t1.token FROM ceshi t1 WHERE content="' . $name . '"';11 //運(yùn)行mysql語(yǔ)句,返回MySQL查詢結(jié)果集,是個(gè)句柄12 $result_select = @mysql_query($query_select) or die($error);13 //將mysql查詢結(jié)果集轉(zhuǎn)為數(shù)組14 $row_select = mysql_fetch_array($result_select, MYSQL_ASSOC);15 //判斷是否存在,存在則結(jié)束,本文為了方便,不寫(xiě)重復(fù)結(jié)果的返回處理16 if ($row_select) {17 echo "if(row)";18 } else {//輸入的不存在19 //將其內(nèi)容插入進(jìn)去,并且生成個(gè)唯一標(biāo)識(shí)符token,并對(duì)uuid處理 使其從 1600d45d-42e1-11e7-8106-1C39472981ff 轉(zhuǎn)為 1600D45D42E111E781061C39472981FF20 $query_insert = 'INSERT INTO ceshi VALUES(UPPER(REPLACE(UUID(),"-","")),"' . $name . '")';21 22 $result_insert = @mysql_query($query_insert) or die($error);23 //查詢出其內(nèi)容對(duì)應(yīng)的token24 $query_token = 'SELECT t1.token FROM ceshi t1 WHERE content="' . $name . '"';25 26 $result_token = @mysql_query($query_token) or die($error);27 28 $row_token = mysql_fetch_array($result_token, MYSQL_ASSOC);29 //將其token值提取處理30 $token = $row_token[token];31 //在本程序文件下,將其創(chuàng)建的目錄寫(xiě)成字符串32 $path = "ceshi/";33 //判斷目錄是否存在34 if (is_dir($path)) {//目錄存在,則直接復(fù)制并且重命名文件35 36 //找到模板文件37 $old = "win.html";38 //復(fù)制的新文件寫(xiě)成一個(gè)字符串39 $new = $path . $token . '.html';40 //將其復(fù)制到上面創(chuàng)建的目錄中,并且重命名為token41 copy($old, $new);42 //token的數(shù)組轉(zhuǎn)為json數(shù)據(jù)返回 ajax請(qǐng)求的為dataType:"JSON"43 echo json_encode($row_token, JSON_UNESCAPED_UNICODE);44 45 } else {46 //目錄不存在則創(chuàng)建47 $res = mkdir($path);48 if ($res) {49 50 $old = "win.html";51 $new = $path . $token . '.html';52 53 copy($old, $new);54 55 echo json_encode($row_token, JSON_UNESCAPED_UNICODE);56 } else {57 echo "目錄 $path 創(chuàng)建失敗";58 }59 }60 61 }62 } else {63 header('Location: http://127.0.0.1:9090/Project01/php/other.html');64 }65 ?>
接下來(lái)寫(xiě)模板文件:文件名為win.html
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <h1 class="h1"></h1> 9 10 <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>11 <script type="text/javascript">12 $(document).ready(function(){13 /*14 * 獲取url的信息http://127.0.0.1:9090/Project01/php/win.html將其中的win獲取出來(lái)15 * 在復(fù)制的html中是win你輸入的內(nèi)容的token值,16 * */17 var strUrl=window.location.href;18 var arrUrl=strUrl.split("html");19 var strPage=arrUrl[0];20 var last=strPage.split("/");21 var filenameadd=last[last.length-1];22 var filename=filenameadd.substring(0,filenameadd.length-1);23 24 //通過(guò)獲取到的值,進(jìn)行數(shù)據(jù)查詢25 $.ajax({26 type:"post",27 url:"//127.0.0.1:9090/Project01/php/win.php",28 async:true,29 data:{"content":filename},30 dataType:"JSON",31 success:function(r){32 var h1=$(".h1");33 h1.text(r.content); //修改文本內(nèi)容34 $(document).attr("title",r.content); //修改title內(nèi)容35 }36 });37 })38 </script>39 </body>40 </html>
接下來(lái)了便是復(fù)制成功后頁(yè)面請(qǐng)求提交數(shù)據(jù):文件名為:win.php
1 <?php 2 /* 3 * 一些注釋在creathtml.php文件中已寫(xiě) 4 * */ 5 require './config.php'; 6 7 $win=$_POST['content']; 8 9 if(isset($win)){10 11 $query_content = 'SELECT t1.content FROM ceshi t1 WHERE token="'.$win.'"';12 13 $result_content = @mysql_query($query_content) or die($error);14 15 $row_content = mysql_fetch_array($result_content, MYSQL_ASSOC);16 //將其請(qǐng)求的內(nèi)容返回17 echo json_encode($row_content,JSON_UNESCAPED_UNICODE);18 19 }else{20 header('Location: http://127.0.0.1:9090/Project01/php/other.html');21 }22 ?>
下面是測(cè)試截圖:
一:未開(kāi)始前
MySQL
文件目錄中:
二:使用開(kāi)始
網(wǎng)頁(yè)截圖:
輸入內(nèi)容
點(diǎn)擊提交
點(diǎn)擊鏈接
mysql截圖:
文件目錄截圖
至此傳入數(shù)據(jù),生成對(duì)應(yīng)的html文件已成功,想要內(nèi)容更好點(diǎn),再添加點(diǎn)內(nèi)容即可
注:本文為博主原創(chuàng),允許所有人轉(zhuǎn)載,但是請(qǐng)注明原文檔出處
http://www.cnblogs.com/dark-portal/p/7027292.html