我有一个用 PHP 编写的博客,它使用 MySQL 作为其后端。数据库中存储了一个博客文章模板,脚本会在需要时提取该内容。我怎样才能做到这一点,这样我就不需要将模板存储在我的数据库和 PHP 文件中?
我的 PHP 代码是:
<?php
$dbhost="localhost";
$dbname="database";
$dbuser="username";
$dbpass="password";
$mysql=@mysql_select_db($dbname, @mysql_connect($dbhost, $dbuser, $dbpass)) or die (mysql_error());
if (($_GET['act'] == "blog") && (is_numeric($_GET['id']))) {
$temp = mysql_fetch_row(mysql_query("SELECT template FROM templates WHERE name = 'blog'"));
$sql = mysql_query("SELECT * FROM posts WHERE id = '".$_GET['id']."'");
while($r = mysql_fetch_array($sql)) {
$pab[0] = "/{subject}/";
$pab[1] = "/{date}/";
$pab[2] = "/{blog}/";
$rab[0] = "<a href='blog-".$r[id].".html'>".stripslashes($r[subject])."</a>";
$rab[1] = $r[date];
$rab[2] = stripslashes($r[blog])."<br /><br />";
eval (" ?>" . preg_replace($pab, $rab, stripslashes($temp[0])) . " <?php ");
}
}
?>
这是存储在数据库中的代码:
<table cellpadding='0' cellspacing='0' border='0' align='center' width='394'>
<tr>
<td><font face='Tahoma' size='4' color='#3A3A3A'><b>{subject}</b></font></td>
</tr>
<tr>
<td>{blog}</td>
</tr>
</table>
我的问题是;我怎样才能做到这一点,这样我就不需要将模板存储在我的数据库和 PHP 文件中?
最佳答案
你的意思是这样吗?
<?php
$dbhost="localhost";
$dbname="database";
$dbuser="username";
$dbpass="password";
$mysql=@mysql_select_db($dbname, @mysql_connect($dbhost, $dbuser, $dbpass)) or die (mysql_error());
if (($_GET['act'] == "blog") && (is_numeric($_GET['id']))) {
$temp = "<table cellpadding='0' cellspacing='0' border='0' align='center' width='394'>
<tr>
<td><font face='Tahoma' size='4' color='#3A3A3A'><b>{subject}</b></font></td>
</tr>
<tr>
<td>{blog}</td>
</tr>
</table>";
$sql = mysql_query("SELECT * FROM posts WHERE id = '".$_GET['id']."'");
while($r = mysql_fetch_array($sql)) {
$pab[0] = "/{subject}/";
$pab[1] = "/{date}/";
$pab[2] = "/{blog}/";
$rab[0] = "<a href='blog-".$r[id].".html'>".stripslashes($r[subject])."</a>";
$rab[1] = $r[date];
$rab[2] = stripslashes($r[blog])."<br /><br />";
eval (" ?>" . preg_replace($pab, $rab, stripslashes($temp)) . " <?php ");
}
}
?>
关于php - PHP 和 MySQL 中的页面模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6082797/