PHP简易实现批量生成html静态页面
2018-01-04 00:15
1071 查看
PHP简易实现批量生成html静态页面
大家好,我骇Yangrl.原来哈起一坨(蠢萌),写了页面以后,复制十份,挨着改里面的文本,imp,url等内容,做成十张页面(类似新闻详情页啊,商品详情页等)其实整体框架都没改变,就是内容变了。
“你就甘于当一只 只会重复无聊的工作的沙皮狗么?”
作用于还未了解模板引擎,或者未接触框架。又和我一样遵循懒及生产力原则,希望减少重复呆板工作,避免时间的不必要浪费的同学。
原理:PHP中str_replace替换函数的运用,
首先需要一个数据库,我叫他newsdata. 和一张表:(news) 具体如下图:
提一点,新闻内容和后面说到的html路径的类型设为了TEXT,在MySQL—Front中会显示MEMO,不影响调用,要查看内容点击下面会弹出一六进制编辑器即可查看内容
接着你可以创建一个connect.php用于连接数据库,好处是以后直接引用(require_once)就ok,也可以直接在php文件中进行书写
然后就是建模板文件(model.html),因为我们只需要调用数据,改想改的内容就ok,其他像什么导航啊,页脚啊,左边右边背景杂七杂八都不变。我就最简单的实现,(对头,懒遭了!)搞懂了当然可以扩展啊,写一个和我写的一样各种炫酷霸道的模板 [手动滑稽],要替换哪里,花括号一括起就开整。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{news_title}</title> </head> <body> 新闻标题:{news_title}//调用 新闻内容:{news_contents}//调用 </body> </html>
顺带简单写一个发布表单(modelform.html),提交到马上要说,主要的add.php文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>modelform</title> </head> <body> <form method="post" action="add.php"> 新闻标题:<input type="text" name="news_title" id=""><br/> 新闻内容:<textarea name="news_contents" cols="50" rows="10"></textarea><br/> <input type="submit" value="发布"> </form> </body> </html>
接下来就是重点了 add.php
<?php header("content-type:text/html;charset=utf-8"); //引用连接数据库文件 require_once("connect.php"); //获取表单数据 $title=$_POST["news_title"]; $content=$_POST["news_contents"]; //建一个txt,值自增,用作命名 $countFile="count.txt"; //文件不存在则创建 if (!file_exists($countFile)) { fopen($countFile,"wb"); } $handle=fopen($countFile,"rb"); $num=fgets($handle,20); //每次增加1 $num=$num+1; fclose($handle); //更新$num $handle=fopen($countFile,"wb"); fwrite($handle,$num); fclose($handle); //获取html路径,可自定义 $extend=".html"; $path="news".$num.$extend; //插入数据 $sql="INSERT news(news_title,news_contents,news_path) VALUES('".$title."','".$content."','".$path."');"; $conn->query($sql); /**---开始替换---**/ //打开html模板 $handle=fopen("model.html","rb"); //读取模板内容 $str=fread($handle,filesize("model.html")); //替换 str_replace("被替换的","替换成","在哪替换") //为什么在$str里替换?因为上面我们才读取的模板内容,肯定在模板里换撒 $str=str_replace("{news_title}", $title, $str); $str=str_replace("{news_contents}",$content,$str); fclose($handle); //把替换的内容写进生成的html文件 $handle=fopen($path,"wb"); fwrite($handle,$str); fclose($handle);
OK!
最后感谢“yeqihong”,参考了他的文章 PHP生成静态html网页的三种方法 。晚安!
“in case I don’t see you,
good afternoon,good evening,and good night!——《楚门的世界》”
相关文章推荐
- 使用PHP实现生成HTML静态页面
- php生成静态html页面的简单实现
- PHP 批量生成静态html
- PHP 批量生成静态html
- php+memcached实现定时静态页面生成
- 利用PHP生成静态html页面的原理
- PHP 动态生成静态HTML页面示例代码
- PHP中批量生成静态html(命令行下运行PHP)
- php生成静态html页面的方法(2种方法)
- PHP批量生成静态HTML的简单原理和方法
- php生成静态html分页实现方法
- PHP生成静态HTML页面最简单方法示例
- 使用php 的缓冲区功能和apache的url重写功能实现静态html生成实例
- 用PHP实现的生成静态HTML速度快类库
- PHP中批量生成静态html(命令行下运行PHP)
- 用php生成静态html页面
- php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
- php生成静态html页面的方法(2种方法)
- php生成静态html分页实现方法
- PHP生成静态HTML页面简单方法