之前寫了一個小程式備份全部 pLog 中的文章,這回做了小小的改版,與之前的版本有些差別:
1. 輸出文章備份時,也同時輸出作者名稱和撰寫日期。
2. 自動使用安裝 pLog 時的目錄,所以這個新程式要擺在 pLog 安裝目錄之下,好處是不用設定資料庫所在,使用者名稱....等等
3. 預設輸出檔名為 article.htm 請自行修改
4. 網誌名稱請自行修改
5. 備份完成會自動轉到輸出的靜態 HTML 檔案去。
程式如下:
--------------------------------------------------------------------
<?php
// 參數設定
if (!defined( "PLOG_CLASS_PATH" )) {
define( "PLOG_CLASS_PATH", dirname(__FILE__)."/");
}
include_once( PLOG_CLASS_PATH."config/config.properties.php" );
// 資料庫所在
$strMySQL = $config["db_host"];
// 資料庫名稱
$strDatabase = $config["db_database"];
// 資料庫使用者名稱
$strUserName = $config["db_username"];
// 資料庫密碼
$strPassword = $config["db_password"];
// plog 的資料表字首
$strPlogPrefix = $config["db_prefix"];
// 輸出路徑,最後面要加斜線(目錄要設定為可讀寫,例如777)
$strArticleIndexPath = PLOG_CLASS_PATH;
// 輸出備份檔名
$strOutput = "article.htm";
// 網誌名稱
$strBlogName = "White Cloud's Blog";
// 聯結資料庫
$link = mysql_connect($strMySQL, $strUserName, $strPassword) or
die("mysql_connect() failed.");
mysql_select_db($strDatabase, $link) or
die("mysql_select_db() failed.");
// 放文章的變數
$strFileContent = <<<EOT
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="zh_TW" lang="zh_TW" dir="ltr">
<head>
<title>$strBlogName</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body><center>
<font size=6 color=green>White Cloud's Blog</font>
<br>目前暫時連結不上資料庫,這是備份頁面<br><br>
EOT;
$strTableArticleText = $strPlogPrefix."articles_text";
$strTableArticle = $strPlogPrefix."articles";
$strTableUsers = $strPlogPrefix."users";
$sql = "select article_id,topic,text,user,date from $strTableArticleText,$strTableArticle,$strTableUsers where $strTableArticleText.article_id = $strTableArticle.id and $strTableUsers.id = $strTableArticle.user_id order by article_id desc";
$r = mysql_query($sql);
while ($row = mysql_fetch_object($r)) {
$strArticleID = $row->article_id;
$strTopic = $row->topic;
$strText = $row->text;
$strAuthor = $row->user;
$strDate = $row->date;
$strDate = substr($strDate,0,4)."/".substr($strDate,4,2)."/".substr($strDate,6,2)." ".substr($strDate,8,2).":".substr($strDate,10,2).":".substr($strDate,12,2);
$strFileContent = $strFileContent.'<table width="80%" border="1"><tr><td>';
// $strFileContent = $strFileContent.$strArticleID;
// $strFileContent = $strFileContent."<br>";
$strFileContent = $strFileContent.'<font size=5><b>';
$strFileContent = $strFileContent.$strTopic;
$strFileContent = $strFileContent.'</b></font>';
$strFileContent = $strFileContent."<br>";
$strFileContent = $strFileContent.$strAuthor;
$strFileContent = $strFileContent." ";
$strFileContent = $strFileContent.$strDate;
$strFileContent = $strFileContent."<br><br>";
$strFileContent = $strFileContent.$strText;
$strFileContent = $strFileContent."<br><br>";
$strFileContent = $strFileContent."<td><tr><table><br><br>";
}
$strFileContent = $strFileContent = $strFileContent."All content copyright
2004 $strBlogName";
$strFileContent = $strFileContent = $strFileContent."</center></body></html>";
// 輸出成為 HTML
//echo $strFileContent;
$fp = fopen($strArticleIndexPath.$strOutput, "w");
fputs($fp, $strFileContent);
fclose($fp);
header("Location: $strOutput");
?>