admin 发表于 2020-3-10 13:16:38

利用PHP生成静态html页面

功能实现

设置example.html为模板文件,然后按照此模板文件生成article-1.html~article-5.html,以此来做简单的演示,代码如下:

<?php

    header("Content-type:text/html;charset=utf-8");


//将数据存入二维数组
$con=array(
    array('文章标题1','文章内容1'),
    array('文章标题2','文章内容2'),
    array('文章标题3','文章内容3'),
    array('文章标题4','文章内容4'),
    array('文章标题5','文章内容5')
);

foreach($con as $id=>$val){ //循环生成
    $title=$val;
    $content=$val;
    $path="article-".($id+1).".html";

    //替换example内容,并获取内容赋值给$str
    $fp=fopen("example.html","r");
    $str=fread($fp,filesize("example.html"));
    $str=str_replace("{title}",$title,$str);
    $str=str_replace("{content}",$content,$str);
    fclose($fp);

    //新建空白文件,将$str写入
    $handle=fopen($path,"w");
    fwrite($handle,$str);
    fclose($handle);

    echo "生成".$path."<br/>";
}
?>


注解:

fopen(文件名,打开方式),打开文件函数,若无文件,则创建。其返回值为资源型;
fread(文件名,读取字节数),读取文件内容及对应的字节数;
str_replace(规定要查找的值,替换被查找值的值,被搜索的字符串),替换函数;
fclose(文件名),关闭文件;
fwrite(要写入的打开文件,要写入打开文件的字符串,要写入的最大字节数)。

admin 发表于 2020-3-10 13:18:57

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

<?php
if($_POST){

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

$path='list12'.$row.'.html';

$fp=fopen("../group/about.html","r");
$str=fread($fp,filesize("../group/about.html"));
$str=str_replace("{title}",$row,$str);
$str=str_replace("{name}",$system['name'],$str);
$str=str_replace("{content}",$row,$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.'.html';是生成的文件名称,而$fp=fopen("../group/about.html","r");是打开的模板文件,只要做成自己想要的HTML文件就可以了,这里用str_replace函数来做替换的标签,这样就可以在HTML里面调用类似于{title}这样的标签生成HTML文件了,举一反三,简单的HTML批量生成就做成了。

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