前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[原创] 利用前端+php批量生成html文件,传入新文本,输出新的html文件

[原创] 利用前端+php批量生成html文件,传入新文本,输出新的html文件

作者头像
SpiritLing
发布2018-04-16 16:15:56
3.2K0
发布2018-04-16 16:15:56
举报
文章被收录于专栏:SpiritLingSpiritLing

本人因为要想自己写个小说网站练练手,在其中遇到的一些问题,将其解决方法总结出来,例如:

1:小说网站存储了大量的小说,每个小说主页都很相似,url不同,不是使用的history属性改写的,所以如果人工想写的话,那工作量就很大

如下图,用起点小说网来参考,放上我最爱的两本书

在这里我们将其url都当成html文件,不考虑url重写问题

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

先写个数据提交网页:文件名为other.html

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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文件已成功,想要内容更好点,再添加点内容即可

注:本文为博主原创,允许所有人转载,但是请注明原文档出处

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档