PHP生成静态文件之真静态

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

实现思路:

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

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

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

<html>
<head>
<meta  charset="utf-8">
<title>%title%</title>
</head>
<body>
	%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' =>  'ThinkPad 笔记本电脑',
        'price' =>  '3999.00',
        'content'   =>  '山东省地方的发生的发生的发生发额额我感觉如果拉和热烈恭贺啊如果和哦I更黑欧冠和哦I过后啊诶化工ie很高',
    ];
    //替换数据
    $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就写完了。

希望我的一个简单Demo可以帮助到更多的朋友。拿走不谢哦,但是思路一定要是清晰的。

猜你喜欢

转载自blog.csdn.net/weixin_39278982/article/details/80966383