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

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

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

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

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

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

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="UTF-8">
         <title></title>
     </head>
     <body>
         <!--输入你想让显示的内容-->
         <input type="text" name="name" id="name" value="" />
         <!--提交ajax-->
         <button id="btnn">提交</button>
         <!--提交成功后,则会通过数据库连接获取连接地址-->
         <a href="" target="_blank"></a>
         <!--js-->
         <script src="//115.159.30.160/js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
         <script type="text/javascript">
             $("#btnn").on('click',function(){
                 var name = $("#name").val();
                 //jq 的ajax请求
                 $.ajax({
                     type:"post",
                     url:"//127.0.0.1:9090/Project01/php/creathtml.php",
                     async:true,
                     data:{"name":name},
                     dataType:"JSON",
                     success:function(r){
                         console.log(r.token);
                         var hr="http://127.0.0.1:9090/Project01/php/ceshi/"+r.token+".html";
                         $('a').attr('href',hr);//改变a链接地址
                         $('a').text(r.token);//改变a链接访问跳转
                     }
                 });
             })
         </script>
     </body>
 </html>

接下来为php处理接受数据:文件名为creathtml.php

 <?php
 //引入mysql连接配置
 require './config.php';
 //接受other.html ajax请求过来的数据
 $name = $_POST['name']; //ajax的data:{"name":name}

 //判断$name是否存在
 if (isset($name)) {
     //mysql查询语句
     $query_select = 'SELECT t1.token FROM ceshi t1 WHERE content="' . $name . '"';
     //运行mysql语句,返回MySQL查询结果集,是个句柄
     $result_select = @mysql_query($query_select) or die($error);
     //将mysql查询结果集转为数组
     $row_select = mysql_fetch_array($result_select, MYSQL_ASSOC);
     //判断是否存在,存在则结束,本文为了方便,不写重复结果的返回处理
     if ($row_select) {
         echo "if(row)";
     } else {//输入的不存在
         //将其内容插入进去,并且生成个唯一标识符token,并对uuid处理 使其从 1600d45d-42e1-11e7-8106-1C39472981ff 转为 1600D45D42E111E781061C39472981FF
         $query_insert = 'INSERT INTO ceshi VALUES(UPPER(REPLACE(UUID(),"-","")),"' . $name . '")';

         $result_insert = @mysql_query($query_insert) or die($error);
         //查询出其内容对应的token
         $query_token = 'SELECT t1.token FROM ceshi t1 WHERE content="' . $name . '"';

         $result_token = @mysql_query($query_token) or die($error);

         $row_token = mysql_fetch_array($result_token, MYSQL_ASSOC);
         //将其token值提取处理
         $token = $row_token[token];
         //在本程序文件下,将其创建的目录写成字符串
         $path = "ceshi/";
         //判断目录是否存在
         if (is_dir($path)) {//目录存在,则直接复制并且重命名文件

             //找到模板文件
             $old = "win.html";
             //复制的新文件写成一个字符串
             $new = $path . $token . '.html';
             //将其复制到上面创建的目录中,并且重命名为token
             copy($old, $new);
             //token的数组转为json数据返回 ajax请求的为dataType:"JSON"
             echo json_encode($row_token, JSON_UNESCAPED_UNICODE);

         } else {
             //目录不存在则创建
             $res = mkdir($path);
             if ($res) {

                 $old = "win.html";
                 $new = $path . $token . '.html';

                 copy($old, $new);

                 echo json_encode($row_token, JSON_UNESCAPED_UNICODE);
             } else {
                 echo "目录 $path 创建失败";
             }
         }

     }
 } else {
     header('Location: http://127.0.0.1:9090/Project01/php/other.html');
 }
 ?>

接下来写模板文件:文件名为win.html

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="UTF-8">
         <title></title>
     </head>
     <body>
         <h1 class="h1"></h1>

         <script src="//115.159.30.160/js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
         <script type="text/javascript">
             $(document).ready(function(){
                 /*
                  * 获取url的信息http://127.0.0.1:9090/Project01/php/win.html将其中的win获取出来
                  * 在复制的html中是win你输入的内容的token值,
                  * */
                 var strUrl=window.location.href;
                 var arrUrl=strUrl.split("html");
                 var strPage=arrUrl[0];
                 var last=strPage.split("/");
                 var filenameadd=last[last.length-1];
                 var filename=filenameadd.substring(0,filenameadd.length-1);

                 //通过获取到的值,进行数据查询
                 $.ajax({
                     type:"post",
                     url:"//127.0.0.1:9090/Project01/php/win.php",
                     async:true,
                     data:{"content":filename},
                     dataType:"JSON",
                     success:function(r){
                         var h1=$(".h1");
                         h1.text(r.content); //修改文本内容
                         $(document).attr("title",r.content); //修改title内容
                     }
                 });
             })
         </script>
     </body>
 </html>

接下来了便是复制成功后页面请求提交数据:文件名为:win.php

 <?php
 /*
  * 一些注释在creathtml.php文件中已写
  * */
 require './config.php';

 $win=$_POST['content'];

 if(isset($win)){

     $query_content = 'SELECT t1.content FROM ceshi t1 WHERE token="'.$win.'"';

     $result_content = @mysql_query($query_content) or die($error);

     $row_content = mysql_fetch_array($result_content, MYSQL_ASSOC);
     //将其请求的内容返回
     echo json_encode($row_content,JSON_UNESCAPED_UNICODE);

 }else{
     header('Location: http://127.0.0.1:9090/Project01/php/other.html');
 }
 ?>

下面是测试截图:

一:未开始前

MySQL

文件目录中:

二:使用开始

网页截图:

输入内容

点击提交

点击链接

mysql截图:

文件目录截图

至此传入数据,生成对应的html文件已成功,想要内容更好点,再添加点内容即可

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

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

  1. 如何利用Excel快速批量生成想要的代码

    如何利用Excel快速批量生成想要的代码 使用场景 在HTML DOM Video 对象这个页面 我想要将所有的中文描述和对应的属性(共32个属性)打印出来--console.log(descript ...

  2. 用备份控制文件做不完全恢复下的完全恢复(全备<老>--备份控制文件<次新>--删除表空间andy--日志文件<新>)

    为什么会使用备份的控制文件? 实际工作中主要有两种情况:第一种:当前控制文件全部损坏,而数据文件备份,控制文件备份及当前日志处于不同SCN版本,它们之间又增加过表空间(数据文件).第二种:当前控制文件 ...

  3. FluentData-新型轻量级ORM 利用T4模板 批量生成多文件 实体和业务逻辑 代码

    FluentData,它是一个轻量级框架,关注性能和易用性. 下载地址:FlunenData.Model 利用T4模板,[MultipleOutputHelper.ttinclude]批量生成多文件 ...

  4. 利用Resgen.exe 批量生成resources文件

    Resgen.exe(资源文件生成器)  您可以直接如图操作 转换时在 文本中先写好要转换的文件然后 全选 复制到控制台中 Filename.resx 要转换的文件 ResName1.resource ...

  5. 利用strut2标签自动生成form前端验证代码

    利用strut2标签自动生成form前端验证代码,使用到的技术有1.struts2标签,如<s:form> <s:textfieled>2.struts2读取*Validati ...

  6. C# 利用WORD模板和标签(bookmark) 批量生成WORD

    前言: 由于对C#操作WORD不熟悉,也就留下这么一篇水文,别吐糟...=_=||| 利用Microsoft.Office.Interop.Word (2003版也就11版)——因为部分客户端还是用O ...

  7. 脚本工具(获取某个文件夹下的所有图片属性批量生成css样式)

    问题描述: 由于有一次工作原因,就是将某个文件夹下的所有图片,通过CSS描述他们的属性,用的时候就可以直接引用.但是我觉得那个文件夹下的图片太多,而且CSS文件的格式又有一定的规律,所有想通过脚本来生 ...

  8. php 批量生成html、txt文件

    首先建立一个conn.php的文件用来链接数据库 <?php     $link = mysql_connect("mysql_host" , "mysql_use ...

  9. 批量生成sqlldr文件,高速卸载数据

    SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库.SQL*Loader支持传统路径模式以及直接路径这两种加载模式.关于SQL ...

随机推荐

  1. java 并发工具类CountDownLatch & CyclicBarrier

    一起在java1.5被引入的并发工具类还有CountDownLatch.CyclicBarrier.Semaphore.ConcurrentHashMap和BlockingQueue,它们都存在于ja ...

  2. 利用Apache POI 实现简单的Excel表格导出

    1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...

  3. 机器学习笔记-1 Linear Regression with Multiple Variables(week 2)

    1. Multiple Features note:X0 is equal to 1 2. Feature Scaling Idea: make sure features are on a simi ...

  4. 【算法系列学习三】[kuangbin带你飞]专题二 搜索进阶 之 A-Eight 反向bfs打表和康拓展开

    [kuangbin带你飞]专题二 搜索进阶 之 A-Eight 这是一道经典的八数码问题.首先,简单介绍一下八数码问题: 八数码问题也称为九宫问题.在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的 ...

  5. 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上

    在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...

  6. MySQL修改表字段相关信息

    昨天收获颇多,首先回顾一下有关mysql的内容. 我在查询表信息时,出现了 empty set 0.00 sec 的错误,我很奇怪,仔细检查发现原来是表字段名称写错了, 于是我想修改字段名称,经过查询 ...

  7. 关于li标签之间的间隔如何消除!

    问题:li标签用了display:inline之后虽然成功的合并在一行,但是li标签之间出现了间距. 原因:按enter键换行之后li标签之间存在着空格,正是这些空格占据了li标签之间的空间. 解决方 ...

  8. libpng处理png图片(一)

    一:libpng库的编译 环境:windows10 + VS2013 需要下载:libpng, zlib两个库 下载地址: libpng:http://libmng.com/pub/png/libpn ...

  9. TP5.0 PHPExcel 数据表格导出(原)

    今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExcel没有命名空间,所以框架里面的use根本引入不进去, ...

  10. Java学习笔记——设计模式之四.代理模式

    To be, or not to be: that is the question. --<哈姆雷特> 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 上代码: p ...