2011-05-21 60 views
0

我有一個使用MySQL作爲其後端的用PHP編寫的博客。存儲在數據庫中的博客文章模板,腳本在需要時提取該內容。我怎樣才能做到這一點,所以我不需要將模板存儲在我的數據庫和我的PHP文件中呢?PHP和MySQL中的頁面模板

我的PHP代碼:

<?php 

$dbhost="localhost"; 
$dbname="database"; 
$dbuser="username"; 
$dbpass="password"; 
[email protected]_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文件中呢?

+1

用從文件('file_get_contents()')中獲取代碼的代碼替換從數據庫中獲取模板的代碼。 – 2011-05-21 15:55:17

+0

再次,請停止多餘的問候和簽名! – 2011-05-21 15:59:03

+0

你從來沒有聲明'$ pab'和'$ rab'是數組。 – 2011-05-21 16:02:49

回答

1

您的意思是?

<?php 

$dbhost="localhost"; 
$dbname="database"; 
$dbuser="username"; 
$dbpass="password"; 
[email protected]_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 "); 
    } 
} 
?> 
+0

「我怎樣才能做到這一點,所以我不需要將模板存儲在我的數據庫和PHP文件中?」但你仍然使用數據庫。 – 2011-05-21 15:59:48

+0

@Tomalak:是的,用於發佈數據。 _template_存儲在文件中。 – 2011-05-21 16:01:04

+0

對,好。我現在明白了。 – 2011-05-21 16:03:15