1

Тема: PHP. Импорт постов из бэкапа Wordpress на форум vbulletin.

Нужно было перенести бэкап сообщений без комментариев с блога на Wordpress (3 версии) на форум на движке vbulletin 3.7+.
С вордпресса скачал бэкап, залил его по фтп в папочку скрипта на PHP.
Импортировал с помощью  simplexml весь бэкап в $xml

Кстати, была проблема с кодировками, т.к. бэкап водрпресса на UTF-8, а таблицы vbulletin в Windows-1251 кодировке.

 <html>
<head>
<title>Конвертер</title>
</head>
<body>

<?php
echo "<br>Чтение XML контента из файла бэкапа Wordpress<br><br>";
$xml = simplexml_load_file('wordpress.2015-03-20.xml');

$file_ini = file("boris2.ini");
$host="localhost";
$user=trim($file_ini[0]);
$pwd=trim($file_ini[1]);
$database_name=trim($file_ini[2]);
$db=mysql_connect($host,$user,$pwd);
echo "<br>   {$database_name} - {$user} - {$pwd} <br>";
mysql_select_db($database_name,$db); 

mysql_query("SET character_set_client='utf8'");
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_results='cp1251'");

// найти последнюю тему
$maxthread = mysql_fetch_array(mysql_query("SELECT MAX(threadid) FROM thread"));
$threadid=$maxthread[0];
echo "<br>последняя тема:" . $threadid  . "<br>"; 
//найти последний пост
$maxpost = mysql_fetch_array(mysql_query("SELECT MAX(postid) FROM post"));
$idpost=$maxpost[0];
echo "<br>последний пост:" . $idpost  . "<br>"; 
$idpost = $idpost +1;
$mytime = date( "U" ); // месяц назад ?
$nm = "admin";
$userid = "1";
$parentid="0"; // родительский раздел.

foreach ($xml->channel->item as $value){
$title = $value->title;    //  в заголовок поста назв. темы 
$maspost = $value->children('content', true)->encoded;
$rep = array("<p>", "</p>", "<!--more-->");
$maspost = str_replace ($rep, "", $maspost);

$result = mysql_query("INSERT INTO post  
(postid, threadid, parentid, username, userid, title, dateline, pagetext, visible) 
VALUES 
('$idpost', '$threadid', '$parentid', '$nm','$userid', '$title', '$mytime', '$maspost', '1')")
or die("Invalid query: " . mysql_error());

echo "idpost:". $idpost." title: ". $title ." текст: ".  $maspost ."<br><br><br>";

$idpost = $idpost +1;
$mytime = $mytime  + rand(10, 20);
}
  
echo "<br>Конец! "; 
?>

</body>
</html>

Поделиться

2

Re: PHP. Импорт постов из бэкапа Wordpress на форум vbulletin.

Данный скрипт добавляет содержимое XML бэкапа (а это все посты в бэкапе) в последнюю созданную тему на форуме.

Поделиться