PHP生成静态文件之真静态

编程语言
0 986

下面思路和代码是在Demo实现,非框架

实现思路:

举个例子--例如我们要把某个商品的详情存入静态页面

  1. <?php
  2. 获取商品ID
  3. 如果对应的静态页面存在{
  4. 那么就直接读取html页面
  5. }否则{
  6. 根据商品ID查出商品内容
  7. 生成对应的html文件
  8. 读取html文件并展示到页面上
  9. }
  10. ?>


模板文件:需要新建一个Page.html文件


<head>
<  meta  charset="utf-8"  >
<title>%title%</title>
</head>

	%gid%--%title%
	<hr>
	%price%
	<hr>
	%content%
</body>
</html>



实现代码:需要新建一个html(存放模板文件的文件夹)

<?php
header('content-type:text/html;charset=utf-8');
 
//判断gid是否有传输
if (isset($_GET['gid'])){
    //如果有的话直接赋值
    $gid = $_GET['gid'];
} else {
    //没有的话默认访问gid为1的
    $gid = 1;
}
 
//定义存储静态页面的路径
$html_file = '../html/' . $gid . '.html';
//判断该文件是否存在
if (file_exists($html_file)){
    readfile($html_file);   //读取文件并输出
} else {
    //模板文件路径
    $tpl_file = './Page.html';
    //读取模板
    $html_data = file_get_contents($tpl_file);
    
    //模拟数据库根据商品ID取数据
    $goods_data = [
        'gid'   =>  $gid,
        'title' =>  'PHP生成静态文件之真静态',
'price' => '1.00', 'content' => 'PHP生成静态文件之真静态PHP生成静态文件之真静态PHP生成静态文件之真静态PHP生成静态文件之真静态',
]; //替换数据 $html_data = str_replace("%gid%", $goods_data['gid'], $html_data); $html_data = str_replace("%title%", $goods_data['title'], $html_data); $html_data = str_replace("%price%", $goods_data['price'], $html_data); $html_data = str_replace("%content%", $goods_data['content'], $html_data); //写入并生成静态文件 file_put_contents($html_file, $html_data); //输出 echo $html_data; }


一个简单的生成静态文件的Demo就写完了。