Здравствуйте, вот скрипт конвертер форума ucoz в SMF, все работает кроме пользователей и переноса сообщений
Цитата |
<?php set_time_limit(60000); include "config.php"; echo'<a href=?step1>Конвертация пользователей</a> -> <a href=?step2>Конвертация разделов</a> -> <a href=?step3>Конвертация тем</a> -> <a href=?step4>Конвертация сообщений</a> -> <a href=?step5>Финальный этап - настройка</a> ->'; if(isset($_GET['step1'])) { $filename = "ucoz/_s1/users.txt"; $fd = fopen($filename, "r"); $i = 0; mysql_query("SET CHARACTER SET cp1251"); echo "Лог ковертирования<br>"; while (!feof ($fd)) { $bufer[$i] = fgets($fd, 12288); $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]"); $arr = explode("|", $bufer[$i]); $i++; if($arr[0] != ""){ $query = "INSERT IGNORE INTO smf_members (`member_ip`,`birthdate`,`last_login`,`id_group`,`member_name`,`real_name`,`is_activated`,`email_addr ess`, `passwd`, `posts`, `date_registered`, `icq`) VALUES ('$arr[16]','$arr[22]','$arr[2]','4','$arr[0]','$arr[5]','1','$arr[7]', '$arr[2]', '0', '$arr[15]', '$arr[9]'); "; $result = mysql_query($query); if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br>< <br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\"> Пользователь «$arr[0]» успешно сконвертирован </textarea>"; } } fclose($fd); } if(isset($_GET['step2'])) { $filename = "ucoz/_s1/fr_fr.txt"; $fd = fopen($filename, "r"); $i = 0; $e = 0; mysql_query("SET CHARACTER SET cp1251"); echo "Лог ковертирования<br>"; while (!feof ($fd)) { $bufer[$i] = fgets($fd, 4096); $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]"); $arr = explode("|", $bufer[$i]); $i++; $arr[11] = date('Y-m-d G:i:s' ,$arr[11]); $query = "INSERT IGNORE INTO smf_boards (`id_board`, `name`, `description`, `board_order`) VALUES ('$arr[0]', '$arr[5]', '$arr[6]', '1'); "; $result = mysql_query($query); if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>$query </textarea><br><br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">Форум «$arr[5]» успешно сконвертирован</textarea>"; } fclose($fd); echo "Конвертация категорий и форумов завершена!<br>"; } if(isset($_GET['step3'])) { $filename = "ucoz/_s1/forum.txt"; $fd = fopen($filename, "r"); $i = 0; mysql_query("SET CHARACTER SET cp1251"); echo "Лог ковертирования<br>"; while (!feof ($fd)) { $bufer[$i] = fgets($fd, 4096); $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]"); $arr = explode("|", $bufer[$i]); $i++; $info = "SELECT * FROM smf_boards WHERE id_board = $arr[1]"; $a = mysql_query($info); $query = "INSERT IGNORE INTO smf_topics (`id_topic`, `id_board`, `approved`) VALUES ('$arr[0]', '$arr[1]', '1'); "; $result = mysql_query($query); if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">Тема «$arr[8]» успешно сконвертирована</textarea>"; } fclose($fd); echo "Конвертация тем завершена!<br>"; } if(isset($_GET['step4'])) { $filename = "ucoz/_s1/forump.txt"; $fd = fopen($filename, "r"); $i = 0; mysql_query("SET CHARACTER SET cp1251"); echo "Лог ковертирования<br>"; while (!feof ($fd)) { $bufer[$i] = fgets($fd, 4096); $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]"); $arr = explode("|", $bufer[$i]); $arr[4] = preg_replace("#\'#i", "`", $arr[4]); $i=$i+1; $name=$arr['6']; $info = mysql_query("SELECT * FROM smf_members WHERE member_name = '".$name."'"); while($a = mysql_fetch_array($info)){ $a['id_member']=$uid; $a['email_address']=$umail; $a['member_ip']=$uip; } $dat_e = date('Y-m-d G:i:s' ,$arr[2]); $query = "INSERT IGNORE INTO smf_messages (`id_msg`, `id_topic`, `poster_time`, `id_member`, `poster_name`, `poster_email`, `poster_ip`, `body`, `approved`) VALUES ('$arr[0]','$arr[1]', '$arr[2]', '".$uid."', '$arr[6]', '".$umail."', '".$uip."', '$arr[4]', '1'); "; $result = mysql_query($query); if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">Сообщение пользователя «$arr[6]» успешно сконвертировано</textarea>"; } fclose($fd); echo "Конвертация сообщений завершена!<br>"; } if(isset($_GET['step5'])) { $post = mysql_query("SELECT * FROM smf_topics"); while ($news = mysql_fetch_array($post)) { $news['id_topic']=$mid; $news['id_board']=$bid; $sql = mysql_query("UPDATE `smf_messages` SET `id_board` = '".$bid."' WHERE id_topic='".$mid."'"); } $post = mysql_query("SELECT * FROM smf_members"); while ($news = mysql_fetch_array($post)) { $pod = mysql_query("SELECT * FROM smf_messages where poster_name ='".$news['member_name']."'"); $kolvoposts = mysql_num_rows($pod); $sql = mysql_query("UPDATE `smf_members` SET `posts` = '".$kolvoposts."' WHERE member_name='".$news['member_name']."'"); } $post = mysql_query("SELECT * FROM smf_messages"); while ($news = mysql_fetch_array($post)) { $pod = mysql_query("SELECT * FROM smf_members where member_name ='".$news['poster_name']."'"); $ugen = mysql_fetch_array($pod); $sql = mysql_query("UPDATE `smf_messages` SET `id_member` = '".$ugen['id_member']."', `poster_name` = '".$ugen['member_name']."', `poster_ip` = '".$ugen['member_ip']."', `poster_email` = '".$ugen['email_address']."' WHERE poster_name='".$news['poster_name']."'"); } echo "Последний этап настройки завершен!<br>Обновите счетчики и показатели в панели управления форума!"; } ?> |
{
$filename = "ucoz/_s1/users.txt";
$fd = fopen($filename, "r");
$i = 0;
mysql_query("SET CHARACTER SET cp1251");