[原創] 利用前端+php批量生成html文件,傳入新文本,輸出新的html文件


本人因為要想自己寫個小說網站練練手,在其中遇到的一些問題,將其解決方法總結出來,例如:

1:小說網站存儲了大量的小說,每個小說主頁都很相似,url不同,不是使用的history屬性改寫的,所以如果人工想寫的話,那工作量就很大

如下圖,用起點小說網來參考,放上我最愛的兩本書

 

在這里我們將其url都當成html文件,不考慮url重寫問題

所以,今天我就將我的解決方案放入其中,算是批量生成html文件

先寫個數據提交網頁:文件名為other.html

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <!--輸入你想讓顯示的內容-->
 9         <input type="text" name="name" id="name" value="" />
10         <!--提交ajax-->
11         <button id="btnn">提交</button>
12         <!--提交成功后,則會通過數據庫連接獲取連接地址-->
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請求
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鏈接訪問跳轉
31                     }
32                 });
33             })
34         </script>
35     </body>
36 </html>

接下來為php處理接受數據:文件名為creathtml.php

 1 <?php
 2 //引入mysql連接配置
 3 require './config.php';
 4 //接受other.html ajax請求過來的數據
 5 $name = $_POST['name']; //ajax的data:{"name":name}
 6 
 7 //判斷$name是否存在
 8 if (isset($name)) {
 9     //mysql查詢語句
10     $query_select = 'SELECT t1.token FROM ceshi t1 WHERE content="' . $name . '"';
11     //運行mysql語句,返回MySQL查詢結果集,是個句柄
12     $result_select = @mysql_query($query_select) or die($error);
13     //將mysql查詢結果集轉為數組
14     $row_select = mysql_fetch_array($result_select, MYSQL_ASSOC);
15     //判斷是否存在,存在則結束,本文為了方便,不寫重復結果的返回處理
16     if ($row_select) {
17         echo "if(row)";
18     } else {//輸入的不存在
19         //將其內容插入進去,並且生成個唯一標識符token,並對uuid處理 使其從 1600d45d-42e1-11e7-8106-1C39472981ff 轉為 1600D45D42E111E781061C39472981FF
20         $query_insert = 'INSERT INTO ceshi VALUES(UPPER(REPLACE(UUID(),"-","")),"' . $name . '")';
21         
22         $result_insert = @mysql_query($query_insert) or die($error);
23         //查詢出其內容對應的token
24         $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         //在本程序文件下,將其創建的目錄寫成字符串
32         $path = "ceshi/";
33         //判斷目錄是否存在
34         if (is_dir($path)) {//目錄存在,則直接復制並且重命名文件
35             
36             //找到模板文件
37             $old = "win.html";
38             //復制的新文件寫成一個字符串
39             $new = $path . $token . '.html';
40             //將其復制到上面創建的目錄中,並且重命名為token
41             copy($old, $new);
42             //token的數組轉為json數據返回 ajax請求的為dataType:"JSON"
43             echo json_encode($row_token, JSON_UNESCAPED_UNICODE);
44 
45         } else {
46             //目錄不存在則創建
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 創建失敗";
58             }
59         }
60 
61     }
62 } else {
63     header('Location: http://127.0.0.1:9090/Project01/php/other.html');
64 }
65 ?>

 

接下來寫模板文件:文件名為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獲取出來
15                  * 在復制的html中是win你輸入的內容的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                 //通過獲取到的值,進行數據查詢
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); //修改文本內容
34                         $(document).attr("title",r.content); //修改title內容
35                     }
36                 });
37             })
38         </script>
39     </body>
40 </html>

接下來了便是復制成功后頁面請求提交數據:文件名為:win.php

 1 <?php
 2 /*
 3  * 一些注釋在creathtml.php文件中已寫
 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     //將其請求的內容返回
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 ?>

下面是測試截圖:

一:未開始前

MySQL

 

文件目錄中:

二:使用開始

網頁截圖:

輸入內容

點擊提交

點擊鏈接

mysql截圖:

文件目錄截圖

 

至此傳入數據,生成對應的html文件已成功,想要內容更好點,再添加點內容即可

注:本文為博主原創,允許所有人轉載,但是請注明原文檔出處

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM