php生成静态页面

    下面演示下如何使用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();
	}
?>
    结果如图所示,打开为详情页静态页面

    




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值