WordPress:Importing From Roller
You can fairly easily import data from Roller using the MovableType import script.
使用MovableType导入脚本,你能够轻易地从Roller中导入数据。
# Export your blog from the Roller database for importing into WordPress.
#将你的博客从Roller数据库中导出,以便导入进WordPress。
# Copy photographs, images, graphics, video, and all content files to the appropriate directories in your WordPress site server.
#将图片,图像,图像,视屏,以及所有的内容文件复制到你的WordPress站点服务器上适当的目录中。
# Modify the $user, $oldresources, $newresources, and $connection variables in the beginning of the script below script and place it on your server where PHP execution is allowed.
#更改脚本的开头,脚本下面的$user, $oldresources, $newresources, 和$connection变数,并且将变数放置到你的服务器上运行PHP的位置。
# Execute the script. This will create a "dump" of your Roller blog content into a MovableType Import format.
#运行脚本,会将你的Roller博客的"大多内容"转变为MovableType导入格式。
# Use wget to store it into file.
#使用wget,将这个格式储存到文件中。
Then follow the instructions for Importing from Movable Type to WordPress.
然后遵循从Movable Type导入 WordPress的指示说明。
The following scripts should work for Roller pre-2.0 release. After Version 2.0, the comment table is changed to roller_comment. Change the select statement to roller_comment.
下面的脚本应该适用于2.0版本之前的Roller。2.0版本之后,评论表格更改为roller_comment。将挑选的声明更改为roller_comment。
Exporting Roller Database from postgresql
从 postgresql中导出Roller数据库
For Roller using the postgresql database, copy the following script carefully and place it in a text editor and save it with an appropriate name as a PHP file. Upload it per the instructions above to your Roller server.
因为Roller使用postgresql数据库,仔细地复制下面的脚本,并且将叫脚本放置到文本编辑器,用适当的名称将脚本保存为PHP文件。根据上述的指示将脚本上传到你的Roller服务器中。
Roller export
// assumes that Roller is running on postgresql
// it also assumes that there is only one blog for user
// the character set used by Roller is utf8, but this seems to suit at least
// WordPress just fine, so no conversions done
// just modify the script, store it somewhere where php execution is allowed
// and wget the url
//
// provided by Madis Kaal
//
$user = "bloguser";
// in entry body, all occurrencies of $oldresources are
// replaced with $newresources
$oldresources = "/resources/bloguser/";
$newresources = "http://somesite/wp-content/";
// define your database connection here
// dbname is name of database
// usually, it is on localhost
// password is for accessing the db
// and user is username for it
$connection = pg_connect("dbname=dbname host=localhost password=dbpassword user=dbuser");// -- this is it, no changes should be needed below -------------------------------
// get ID for user
$result = pg_Exec($connection, "select id from rolleruser where username='".$user."'");
$uid=pg_result($result,0,0);
// get ID for site
$result = pg_Exec($connection,"select id from website where userid='".$uid."'");
$siteid=pg_result($result,0,0);
// get all entries for this site
$entries= pg_Exec($connection,"select id,title,text,pubtime,categoryid,allowcomments,publishentry from weblogentry where websiteid='".$siteid."' order by pubtime");
// dump all entries
echo "--------\n";
for($i=0; $i<(pg_numrows($entries)); $i++)
{
// turn the category ID into category name, I know SQL-heads would just
// do it in query, but I'm a complete C-head
$resultRow = pg_fetch_array($entries, $i);
$c=$resultRow["categoryid"];
$cat=pg_result(pg_Exec($connection,"select name from weblogcategory where id='".$c."'"),0,0);
// dump metadata first
echo "PRIMARY CATEGORY: ".$cat."\n";
echo "AUTHOR: ".$user."\n";
echo "TITLE: ".$resultRow["title"]."\n";
$c=$resultRow["pubtime"];
// convert YYYY-MM-DD hh:mm:ss.ms to MM/DD/YYYY hh:mm:ss
echo "DATE: ".substr($c,5,2)."/".substr($c,8,2)."/".substr($c,0,4).substr($c,10,9)."\n";
$c=$resultRow["publishentry"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "STATUS: ".$c."\n";
$c=$resultRow["allowcomments"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "ALLOW COMMENTS: ".$c."\n";
echo "-----\n";
// done with metadata, multiline entries follow
echo "BODY:\n";
$c=str_replace($oldresources,$newresources,$resultRow["text"]);
echo $c."\n";
// find comments for the entry
$comments=pg_Exec("select name,email,url,posttime,remotehost,content from comment where entryid='".$resultRow["id"]."'");
for ($j=0; $j<(pg_numrows($comments)); $j++)
{
$c=pg_fetch_array($comments,$j);
// discard all comments containing url. this gets rid of spam, and also
// some legimate comments as well
if (strpos($c["content"],"http://")===false)
{
echo "-----\n";
echo "COMMENT:\n";
echo "AUTHOR: ".$c["name"]."\n";
echo "EMAIL: ".$c["email"]."\n";
echo "URL: ".$c["url"]."\n";
echo "IP: ".$c["remotehost"]."\n";
$d=$c["posttime"];
echo "DATE: ".substr($d,5,2)."/".substr($d,8,2)."/".substr($d,0,4).substr($d,10,9)."\n";
echo $c["content"]."\n";
}
}
echo "--------\n";
}
pg_close($connection);
?>
Roller 导出
// 假定Roller在postgresql上运行
//同时假定用户只有一个博客
// Roller使用的字符集是utf8,但这似乎至少是匹配的
// WordPress 一切正常,因此不要转变
// 只要更改脚本,将脚本储存在运行php的位置
// 以及wget the url
//
// Madis Kaal 提供
//
$user = "bloguser";
// 在文章主体部分, $oldresources 所有的occurrencies
// 由 $newresources代替
$oldresources = "/resources/bloguser/";
$newresources = "http://somesite/wp-content/";
// 在这里定义你的数据库连接
// dbname 是数据库的名称
//一般,位于本地主机
// 密码是用来访问db
//用户是数据库的用户名
$connection = pg_connect("dbname=dbname host=localhost password=dbpassword user=dbuser");// -- 就这么大,下面不需要做任何更改了-------------------------------
// 得到用户ID
$result = pg_Exec($connection, "select id from rolleruser where username='".$user."'");
$uid=pg_result($result,0,0);
// 得到站点ID
$result = pg_Exec($connection,"select id from website where userid='".$uid."'");
$siteid=pg_result($result,0,0);
//得到这个站点的所有文章
$entries= pg_Exec($connection,"select id,title,text,pubtime,categoryid,allowcomments,publishentry from weblogentry where websiteid='".$siteid."' order by pubtime");
// dump all entries
echo "--------\n";
for($i=0; $i<(pg_numrows($entries)); $i++)
{
// 将类别ID转变为类别名,我知道SQL-heads
//只在查询中执行类别名,但是我是个完整的complete C-head
$resultRow = pg_fetch_array($entries, $i);
$c=$resultRow["categoryid"];
$cat=pg_result(pg_Exec($connection,"select name from weblogcategory where id='".$c."'"),0,0);
// dump metadata first
echo "PRIMARY CATEGORY: ".$cat."\n";
echo "AUTHOR: ".$user."\n";
echo "TITLE: ".$resultRow["title"]."\n";
$c=$resultRow["pubtime"];
// 将YYYY-MM-DD hh:mm:ss.ms转变为MM/DD/YYYY hh:mm:ss
echo "日期: ".substr($c,5,2)."/".substr($c,8,2)."/".substr($c,0,4).substr($c,10,9)."\n";
$c=$resultRow["publishentry"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "STATUS: ".$c."\n";
$c=$resultRow["allowcomments"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "ALLOW COMMENTS: ".$c."\n";
echo "-----\n";
// done with metadata, multiline entries follow
echo "BODY:\n";
$c=str_replace($oldresources,$newresources,$resultRow["text"]);
echo $c."\n";
// 找到文章的评论
$comments=pg_Exec("select name,email,url,posttime,remotehost,content from comment where entryid='".$resultRow["id"]."'");
for ($j=0; $j<(pg_numrows($comments)); $j++)
{
$c=pg_fetch_array($comments,$j);
// 忽视所有包含url的评论。这样除去了垃圾广告以及
// 一些合法的评论
if (strpos($c["content"],"http://")===false)
{
echo "-----\n";
echo "COMMENT:\n";
echo "AUTHOR: ".$c["name"]."\n";
echo "EMAIL: ".$c["email"]."\n";
echo "URL: ".$c["url"]."\n";
echo "IP: ".$c["remotehost"]."\n";
$d=$c["posttime"];
echo "DATE: ".substr($d,5,2)."/".substr($d,8,2)."/".substr($d,0,4).substr($d,10,9)."\n";
echo $c["content"]."\n";
}
}
echo "--------\n";
}
pg_close($connection);
?>
Exporting Roller Database from MySQL
从MySQL中导出Roller数据库
For MySQL databases, copy the following script carefully and place it in a text editor and save it with an appropriate name as a PHP file. Upload it per the instructions above to your Roller server.
对于MySQL数据库,仔细地复制下面的脚本,并且将这个脚本放置到文本编辑器并且适用适当的名称,将脚本作为PHP文件保存。根据上述的指示,将脚本上传到你的Roller服务器。
Roller export
// assumes that Roller is running on MySQL
// it also assumes that there is only one blog for user
// the character set used by Roller is utf8, but this seems to suit at least
// WordPress just fine, so no conversions done
// just modify the script, store it somewhere where php execution is allowed
// and wget the url
//
// provided by Madis Kaal
//
$user = "yourusernameonroller";
// in entry body, all occurrencies of $oldresources are
// replaced with $newresources
$oldresources = "/roller/page/username/";
$newresources = "/roller/page/username/";
// define your database connection here
// dbname is name of database
// usually, it is on localhost
// password is for accessing the db
// and user is username for it
$username = "dbusername";
$password = "dbpassword";
$hostname = "localhost";
$dbname = "roller";
$dbh = mysql_connect($hostname, $username, $password);
$connection = mysql_select_db($dbname,$dbh);// -- this is it, no changes should be needed below -------------------------------
// get ID for user
$result = mysql_query("select id from rolleruser where username='".$user."'");
$uid=mysql_result($result,0,0);
// get ID for site
$result = mysql_query("select id from website where userid='".$uid."'");
$siteid=mysql_result($result,0,0);
// get all entries for this site
$entries= mysql_query("select id,title,text,pubtime,categoryid,allowcomments,publishentry from weblogentry where websiteid='".$siteid."' order by pubtime");
// dump all entries
echo "--------\n";
for($i=0; $i<(mysql_num_rows($entries)); $i++)
{
// turn the category ID into category name, I know SQL-heads would just
// do it in query, but I'm a complete C-head
$resultRow = mysql_fetch_array($entries);
$c=$resultRow["categoryid"];
$cat=mysql_result(mysql_query("select name from weblogcategory where id='".$c."'"),0,0);
// dump metadata first
echo "PRIMARY CATEGORY: ".$cat."\n";
echo "AUTHOR: ".$user."\n";
echo "TITLE: ".$resultRow["title"]."\n";
$c=$resultRow["pubtime"];
// convert YYYY-MM-DD hh:mm:ss.ms to MM/DD/YYYY hh:mm:ss
echo "DATE: ".substr($c,5,2)."/".substr($c,8,2)."/".substr($c,0,4).substr($c,10,9)."\n";
$c=$resultRow["publishentry"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "STATUS: ".$c."\n";
$c=$resultRow["allowcomments"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "ALLOW COMMENTS: ".$c."\n";
echo "-----\n";
// done with metadata, multiline entries follow
echo "BODY:\n";
$c=str_replace($oldresources,$newresources,$resultRow["text"]);
echo $c."\n";
// find comments for the entry
$comments=mysql_query("select name,email,url,posttime,remotehost,content from comment where entryid='".$resultRow["id"]."'");
for ($j=0; $j<(mysql_num_rows($comments)); $j++)
{
$c=mysql_fetch_array($comments);
// discard all comments containing url. this gets rid of spam, and also
// some legimate comments as well
if (strpos($c["content"],"http://")===false)
{
echo "-----\n";
echo "COMMENT:\n";
echo "AUTHOR: ".$c["name"]."\n";
echo "EMAIL: ".$c["email"]."\n";
echo "URL: ".$c["url"]."\n";
echo "IP: ".$c["remotehost"]."\n";
$d=$c["posttime"];
echo "DATE: ".substr($d,5,2)."/".substr($d,8,2)."/".substr($d,0,4).substr($d,10,9)."\n";
echo $c["content"]."\n";
}
}
echo "--------\n";
}
mysql_close();
?>
Roller export
// 假定Roller在MySQL上运行
// 假定用户只有一个博客
// Roller使用的字符集是utf8,但是似乎至少匹配
// WordPress一切顺利,不需要转变
//只要更改脚本,将脚本储存在能够运行php的位置
// 和 wget the url
//
// Madis Kaal mast@nomad.ee提供
//
$user = "yourusernameonroller";
// 在文章主体部分, $oldresources的所有的occurrencies
// 由 $newresources取代
$oldresources = "/roller/page/username/";
$newresources = "/roller/page/username/";
// 在这里定义你的数据库连接
// dbname 是数据库名
// 通常,位于本地主机
// 密码用来访问数据库
//用户是数据库用户名
$username = "dbusername";
$password = "dbpassword";
$hostname = "localhost";
$dbname = "roller";
$dbh = mysql_connect($hostname, $username, $password);
$connection = mysql_select_db($dbname,$dbh);// -- 就这么大,下面不需要任何变化了
-------------------------------
// 得到用户ID
$result = mysql_query("select id from rolleruser where username='".$user."'");
$uid=mysql_result($result,0,0);
// 得到站点ID
$result = mysql_query("select id from website where userid='".$uid."'");
$siteid=mysql_result($result,0,0);
// 得到这个站点的所有文章
$entries= mysql_query("select id,title,text,pubtime,categoryid,allowcomments,publishentry from weblogentry where websiteid='".$siteid."' order by pubtime");
// dump all entries
echo "--------\n";
for($i=0; $i<(mysql_num_rows($entries)); $i++)
{
// 将类别ID转变为类别名,我知道SQL-heads
//只在查询中转变类别ID,但是我是个完成的complete C-head
$resultRow = mysql_fetch_array($entries);
$c=$resultRow["categoryid"];
$cat=mysql_result(mysql_query("select name from weblogcategory where id='".$c."'"),0,0);
// dump metadata first
echo "PRIMARY CATEGORY: ".$cat."\n";
echo "AUTHOR: ".$user."\n";
echo "TITLE: ".$resultRow["title"]."\n";
$c=$resultRow["pubtime"];
// 将YYYY-MM-DD hh:mm:ss.ms转变为 MM/DD/YYYY hh:mm:ss
echo "日期: ".substr($c,5,2)."/".substr($c,8,2)."/".substr($c,0,4).substr($c,10,9)."\n";
$c=$resultRow["publishentry"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "STATUS: ".$c."\n";
$c=$resultRow["allowcomments"];
if ($c=="t") { $c="1"; } else { $c="0"; };
echo "ALLOW COMMENTS: ".$c."\n";
echo "-----\n";
// done with metadata, multiline entries follow
echo "BODY:\n";
$c=str_replace($oldresources,$newresources,$resultRow["text"]);
echo $c."\n";
// 找到文章的评论
$comments=mysql_query("select name,email,url,posttime,remotehost,content from comment where entryid='".$resultRow["id"]."'");
for ($j=0; $j<(mysql_num_rows($comments)); $j++)
{
$c=mysql_fetch_array($comments);
// 忽视所有包含url的评论。这样会去除垃圾广告,和
// 一些合法的评论
if (strpos($c["content"],"http://")===false)
{
echo "-----\n";
echo "COMMENT:\n";
echo "AUTHOR: ".$c["name"]."\n";
echo "EMAIL: ".$c["email"]."\n";
echo "URL: ".$c["url"]."\n";
echo "IP: ".$c["remotehost"]."\n";
$d=$c["posttime"];
echo "DATE: ".substr($d,5,2)."/".substr($d,8,2)."/".substr($d,0,4).substr($d,10,9)."\n";
echo $c["content"]."\n";
}
}
echo "--------\n";
}
mysql_close();
?>