您的位置:首页 > 编程语言 > PHP开发

php生成静态页面

2015-08-25 20:14 627 查看
    下面演示下如何使用php生成.shtml静态页面

    采用pdo链接数据库,将cm_contribution表中的文章全部生成.shtml文件,主要用到的函数有:

    ob_start();    ob_get_clean();    ob_end_clean();

    

<?php
/**
* 查询cm_contribution表 讲表内的文章生成静态页面
*/
header('Content-type:text/html;charset=utf8');
try{
$dsn = "mysql:host=localhost;dbname=cm;charset=utf8";
$pdo = new PDO($dsn,'root','');
$pdo->setAttribute(3,2);
}catch(PDOException $e){
echo $e->getMessage();
}

try{
$sql = "select `contributionid` from cm_contribution";
$re = $pdo->query($sql);
foreach($re as $v){
//开启缓冲
ob_start();
$sql = "select `title`,`content`,`author`,`created`
from cm_contribution where contributionid = {$v['contributionid']}";
$stmt = $pdo->query($sql);
$stmt = $stmt->fetch();
$stmt['created'] = date('Y-m-d H:i:s',$stmt['created']);
$str = <<<EOF
<html>
<head>
<meta charset = "utf-8"/>
<title>{$stmt['title']}_文章</title>
</head>
<body>
<h3>{$stmt['title']}</h3><br/>
<h3>{$stmt['created']}</h3><br/>
<p>{$stmt['author']}</p><br/>
<p>{$stmt['content']}</p>
</body>
</html>
EOF;
echo $str;
//得到当前缓冲区的内容并删除当前输出缓冲区。
$out = ob_get_clean();
if($out){
$filename = './articles/article_'.$v['contributionid'].'.shtml';
file_put_contents($filename,$out);
echo "生成成功";
}else{
echo "静态化失败";
}
//清空(擦除)缓冲区并关闭输出缓冲
ob_end_clean();
}
}catch(PDOException $e){
echo $e->getMessage();
}
?>
    结果如图所示,打开为详情页静态页面

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息