php生成静态页面程序与原理分析
生成html原理分析
我们把要生成的标签写成一个模板文件,然后再利用php读取把指定标签替换成我们要替换 内容就可以了,现在主流的dedecms系统也是这么做的
生成静态页面代码。
模板即尚未填充内容html文件。例如:
代码如下 | 复制代码 |
temp.html <HTML> <TITLE>{ title }</TITLE> <BODY> this is a { file } fileArray;s templets </BODY> <?php $title = "拓迈国际测试模板"; $file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{ file }",$file,$content); $content .= str_replace ("{ title }",$title,$content); echo $content; ?> |
这样一个超简单的php生成静态页面的功能就实现了,但实现应用中这个不实用的,下面我介绍一个从数据库到生成实例。
1.创建测试数据库test,建立user表如下(自己插入几条测试数据库):
代码如下 | 复制代码 |
|
2.建立连接数据文件conn.php
代码如下 | 复制代码 |
<?php $dsn = "mysql:host=localhost;dbname=test;"; $user = "root"; $password = ""; try{ $dbh = new PDO($dsn,$user,$password); }catch(PDOException $e){ echo "连接失败".$e->getMessage(); } ?> |
3.显示新闻列表(news.php),注意,其连接为静态html连接,这时还没生成,当然链接打不开:
代码如下 | 复制代码 |
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> <a href="add.php">添加文章</a> <hr> <?php require_once "conn.php"; $sql = "select * from news"; foreach($dbh->query($sql) as $row){ echo "<a href='news_{$row['id']}.html'>{$row['title']}</a>----<a href='add.php?id={$row['id']}'>修改文章</a><br>"; } ?> |
4.添加修改文章页面:
代码如下 | 复制代码 |
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> <?php //获取修改的内容 if($_GET['id']){ require_once "conn.php"; $sql = "select * from news where id={$_GET['id']}"; $res = $dbh->query($sql)->fetch(); } ?> <form action="action.php" method="post"> 标题:<input type="text" name="title" value="<?=@$res['title']?>"/><br/> 内容:<textarea name="content" col=40 row=4><?=@$res['content']?></textarea><br/> <input type="hidden" name="id" value="<?=$_GET['id']?>" /> <input type="submit" name="submit" value="<?php echo $_GET['id'] ? '修改' : '添加'?>" /> </form> |
5.用于生成静态文件的页面模板template.html
代码如下 | 复制代码 |
|
6.action.php当然是用来生成和更新静态文件的:
代码如下 | 复制代码 |
|
这样一个完整生php生成静态页面的系统就完成了。
本文地址:http://www.phprm.com/base/46874.html
转载随意,但请附上文章地址:-)