PHP批量生成静态HTML的简单原理和方法_php实例

现在的CMS基本上都支持文章生成HTML,生成HTML静态网页的好处就不用多说了吧,无论是页面打开的浏览速度,还是有利于搜索引擎优化SEO,都有明显的提高,有时候网页中有或多或少的漏洞,把PHP转换成HTML格式也有力地保护了网站。

PHP生成HTML的技术要比ASP的技术相对来说要简单一点,下面简要说一下怎样用PHP批量生成HTML技术吧,先看一下面源码:

复制代码 代码如下:

<?php  
if($_POST[button]){  

$sql="select * from doorsjk_about where id<12";  
$rs=$db->query($sql);  
while($row=$db->fetch_array($rs)){  

$path='list12'.$row[id].'.html';  

$fp=fopen("../group/about.html","r");  
$str=fread($fp,filesize("../group/about.html"));  
$str=str_replace("{title}",$row[title],$str);  
$str=str_replace("{name}",$system['name'],$str);  
$str=str_replace("{content}",$row[content],$str);  
$str=str_replace("{copyright}",$system['copyright'],$str);  
fclose($fp);  

$handle=fopen("../group/".$path,"w");   
fwrite($handle,$str);  
echo "<font color='red'>正在生成</font>";  
echo "$path";  
fclose($handle);  
}  
echo "<script>alert('生成成功!');window.location.href='Onlyhtml.php';</script>";  
}  
?>  

<form id="form1" name="form1" method="post" action="">  
  <label><div style="margin:200px 200px;"><img src="../images/html.jpg" />  
  <input type="submit" name="button" id="button" value="单页生成" />  
  </div>  
  </label>  
</form>

首先将连接数据库的代码包含进来,下面是一个点击的表单,当接受到按钮 button 后,就直接循环生成HTML,这里的$path='list12′.$row[id].'.html';是生成的文件名称,而$fp=fopen(“../group/about.html”,”r”);是打开的模板文件,只要做成自己想要的HTML文件就可以了,这里用str_replace函数来做替换的标签,这样就可以在HTML里面调用类似于{title}这样的标签生成HTML文件了,举一反三,简单的HTML批量生成就做成了。

在HTML文件里调用标签是:{title} ,这样就直接调到读取的数据库里文件:$row[title],如果数据量很大,可以分段批量生成,就是生成ID:从()到()之间。用limit来接受调用。至于HTML里面要用到的动态文件,比如生成静态后还要统计文章的读取次数,这个动态的调用可以封装成JS文件,嵌入进来就行了。

这里介绍的是批量重新生成,其实还有在填加新闻时就生成HTML文件,编辑文章内容时生成HTML文件,其实原理上都差不多,我会写下来,可以做个参考。

时间: 2024-09-17 03:51:12

PHP批量生成静态HTML的简单原理和方法_php实例的相关文章

PHP中批量生成静态html(命令行下运行PHP)_php技巧

众所周知,大部分网站的新闻资讯或商品信息都是静态页面.这样做的好处主要是为了:1.加快访问速度,避免过多的操作数据库:2.SEO优化,便于搜索引擎收录. 本示例围绕 CMS 系统的静态页面方案出发,展示批量生成静态 html 功能.注:本文程序只能在 Windows 的 DOS 或 Linux 下执行 PHP 命令来运行.本示例主要有4个文件:config.inc.php(配置文件).Db.class.php(数据库 PDO 类).Model.class.php(PDO数据库操作类).index

解析PHP生成静态html文件的三种方法_php技巧

本文将介绍Php 生成静态html文件的三种方法 .1,下面使用模版的一个方法! 复制代码 代码如下: <?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); if ($fwrite ($fp2,$f

Yii实现简单分页的方法_php实例

本文实例讲述了Yii实现简单分页的方法.分享给大家供大家参考,具体如下: yii分页方法 function actionPage(){ $criteria=new CDbCriteria(); $count=Archives::model()->count($criteria); $pages=new CPagination($count); // results per page $pages->pageSize=10; $pages->applyLimit($criteria); $

PHP生成指定长度随机数最简洁的方法_php实例

刚才在写短信验证码模块,需要用到指定位数的随机数,然后网上一找发现太可怕了这么简单的事情竟然用了好几十行多个循环嵌套--看来没有好脑仁儿真的不适合当程序员. 自写了一行版本: function generate_code($length = 4) { return rand(pow(10,($length-1)), pow(10,$length)-1); } 为了便于理解,同时也为了这篇水文可以凑点字数,这是多行版: function generate_code($length = 4) { $

Linux系统递归生成目录中文件的md5的方法_php实例

linux下使用md5sum递归生成整个目录的md5 今天要用md5sum操作目录,递归生成目录下所有文件的md5值,结果发现它不支持递归操作于是写了个php脚本处理下 代码: <?php $path ='/data/www/bbs/source'; $outfile = 'file.md5'; get_file_md5($path, $outfile); function get_file_md5($path, $outfile) { $path = rtrim($path, '/'); if

PHP批量查询WordPress留言者E-mail地址实现方法_php实例

今天收到了很多Bloger朋友的E-mail拜年短信,嘿嘿,感觉很好玩,可是他们是如何实现的这个呢,很简单的,可是简单的分为两步: 1)通过SQL查询获取E-mail地址 2)通过某种方法群发E-mail 对于1,几行PHP代码可以解决: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra

利用PHP生成静态html页面的原理_php技巧

前言 如果每次用户点击动态链接的时候都会对服务器发送数据查询的要求,对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担,所以把动态数据转换成静态html页面就成了节省人力物力的首选因为此前没有相应的经验,所以这篇文章和大家分享利用PHP生成静态html页面的原理和方法,有需要的可以一起来看看. 一.思路分析 其实,实现静态页面生成功能的原理很简单,主要利用几个常见的PHP文件操作函数对文件进行操作,其思路流程如下: 生成静态页面流程图 二.功能实现 设置example.ht

asp.net实现生成静态页并添加链接的方法_实用技巧

本文以实例讲解了asp.net实现生成静态页并添加链接的方法,非常实用的功能,通过本实例可以加深读者对于asp.net下文件操作的认识. 1.创建一个静态网页模板 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http

php生成静态页面程序与原理分析

生成html原理分析 我们把要生成的标签写成一个模板文件,然后再利用php读取把指定标签替换成我们要替换 内容就可以了,现在主流的dedecms系统也是这么做的 生成静态页面代码. 模板即尚未填充内容html文件.例如:  代码如下 复制代码 temp.html <HTML> <TITLE>{ title }</TITLE> <BODY> this is a { file } fileArray;s templets </BODY> </H