WordPress:Importing From Roller

来自站长百科
跳转至: 导航、​ 搜索

You can fairly easily import data from Roller using the MovableType import script.

使用MovableType导入脚本,你能够轻易地从Roller中导入数据。

  1. Export your blog from the Roller database for importing into WordPress.
  1. 将你的博客从Roller数据库中导出,以便导入进WordPress。
  1. Copy photographs, images, graphics, video, and all content files to the appropriate directories in your WordPress site server.
  1. 将图片,图像,图像,视屏,以及所有的内容文件复制到你的WordPress站点服务器上适当的目录中。
  1. 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.
  1. 更改脚本的开头,脚本下面的$user, $oldresources, $newresources, 和$connection变数,并且将变数放置到你的服务器上运行PHP的位置。
  1. Execute the script. This will create a "dump" of your Roller blog content into a MovableType Import format.
  1. 运行脚本,会将你的Roller博客的"大多内容"转变为MovableType导入格式。
  1. Use wget to store it into file.
  1. 使用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服务器中。

<html>
<head>
<title>Roller export</title>
</head>   
<body>
<?
// 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);
?>
</body>
</html>












<html>
<head>
<title>Roller 导出</title>
</head>   
<body>
<?
// 假定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);
?>
</body>
</html>



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服务器。

<html>
<head>
<title>Roller export</title>
</head>   
<body>
<?
// 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 <mast@nomad.ee>
//
$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();
?>
</body>
</html>














<html>
<head>
<title>Roller export</title>
</head>   
<body>
<?
// 假定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();
?>
</body>
</html>