Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Как конвертировать??

Тема в разделе "Вопросы- ответы", создана пользователем Defoz, 2 окт 2017.

02.10.17 в 20:30
02.10.17 в 20:54
7
505
0
  1. TopicStarter Overlay
    Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    Привет всем.
    В общем начал я сегодня еще днем лазить по инету в поисках какой инфы про перенос ucoz сайта на dle..
    Наткнулся на пару практически одинаковых скриптов которые делались еще на 9.7 я не долго думаю на денвере установил себе это старье что увидеть сможет ли это все мне помочь.. и тут начались ошибки, сначала сам дле почему то был в кракозябрах я вбил в AddDefaultCharset utf-8 этот параметр и все стало норм. Потом загрузил все по инструкции и начал получать кучу ошибок.
    В обще прилагаю скрин ошибки и сам скрипт.
    Код:
    <?php
    
    //******
    //перенос файлов с Ucoz на DLE 9.7
    //*******
    //В случае если не конвертируются какие либо публикации проверьте их на наличие символов UTF-8
    
    set_time_limit (600);
    
    include "config.php";
    
    $filename = "../ucoz/_s1/loads.txt";
    
    $fd = fopen($filename, "r");
    
    $i = 0;
    
    mysql_query("SET CHARACTER SET cp1251");
    
    echo "Лог ковертирования<br>";
        while (!feof ($fd))
            {
     $bufer .= fgets($fd, 4096);
                
            }
    fclose($fd);
    
            $bufer = iconv("UTF-8", "cp1251", "$bufer");
            
    $a = str_replace("\\\n", " ", $bufer);
    $a = str_replace("\n", "|", $a);
    $a = str_replace("\\|", "", $a);
    
    $a = explode("
    ", $a);   
    
    
    
    foreach($a as $index){
            $exp = explode("|", $index);
            $ww = array_chunk($exp, 40);
                foreach($ww as $i => $arr){           
                $arr = $ww[$i];
                            
                $arr[32] = preg_replace("#\'#i", "`", $arr[32]);
                
                
                
                
                //укозовские картинки
                //полный текст
                /*$arr[32] = preg_replace('#<!--IMG(.+?)--><a href=\"(.+?)/_ld/(.+?)\" class=\"ulightbox\" target=\"_ldank\" title=\"Нажмите, для просмотра в полном размере...\"><img alt=\"\" style=\"margin:0;padding:0;border:0;\" src=\"(.+?)\/_ld\/(.+?)\" align=\"\" \/><\/a><!--IMG(.+?)-->#', '<!--TBegin:'.$newsite.'/uploads/posts/_ld/\\3|--><a href="'.$newsite.'/uploads/posts/_ld/\\3" onclick="return hs.expand(this)"><img src="'.$newsite.'/uploads/posts/_ld/\\5" alt="'.$arr[15].'" title="'.$arr[15].'"></a><!--TEnd-->', $arr[32]);
                $arr[32] = preg_replace('#<!--IMG(.+?)--><a href="(.+?)\/_ld\/(.+?)" target="_ldank" title="Нажмите, для просмотра в полном размере..."><img alt="" style="margin:0;padding:0;border:0;" src="(.+?)\/_ld\/(.+?)" align="" /></a><!--IMG1-->#', '<!--TBegin:'.$newsite.'/uploads/posts/_ld/\\3|--><a href="'.$newsite.'/uploads/posts/_ld/\\3" onclick="return hs.expand(this)"><img src="'.$newsite.'/uploads/posts/_ld/\\5" alt="'.$arr[15].'" title="'.$arr[15].'"></a><!--TEnd-->', $arr[32]);
                $arr[32] = preg_replace('#<!--IMG(.+?)--><img alt="" style="margin:0;padding:0;border:0;" src="(.+?)\/_ld\/(.+?)" align="" \/><!--IMG(.+?)-->#', '<!--dle_image_begin:'.$newsite.'/uploads/posts/_ld/\\3|--><img src="'.$newsite.'/uploads/posts/_ld/\\3" alt="'.$arr[15].'" title="'.$arr[15].'"><!--dle_image_end-->', $arr[32]);
                */
                //полный текст
                $arr[32] = preg_replace('#<!--IMG(.+?)--><a href=\"(.+?)/_ld/(.+?)\" class=\"ulightbox\" target=\"_blank\" title=\"Нажмите, для просмотра в полном размере...\"><img alt=\"\" style=\"margin:0;padding:0;border:0;\" src=\"(.+?)\/_ld\/(.+?)/s(.+?)\" align=\"\" \/><\/a><!--IMG(.+?)-->#', '<!--TBegin:'.$newsite.'/uploads/posts/_ld/\\3|--><a href="'.$newsite.'/uploads/posts/_ld/\\3" onclick="return hs.expand(this)"><img src="'.$newsite.'/uploads/posts/_ld/\\5/thumbs/\\6" alt="'.$arr[15].'" title="'.$arr[15].'"></a><!--TEnd-->', $arr[32]);
                $arr[32] = preg_replace('#<!--IMG(.+?)--><a href="(.+?)\/_ld\/(.+?)" target="_blank" title="Нажмите, для просмотра в полном размере..."><img alt="" style="margin:0;padding:0;border:0;" src=\"(.+?)\/_ld\/(.+?)/s(.+?)\" align="" \/><\/a><!--IMG1-->#', '<!--TBegin:'.$newsite.'/uploads/posts/_ld/\\3|--><a href="'.$newsite.'/uploads/posts/_ld/\\3" onclick="return hs.expand(this)"><img src="'.$newsite.'/uploads/posts/_ld/\\5/thumbs/\\6" alt="'.$arr[15].'" title="'.$arr[15].'"></a><!--TEnd-->', $arr[32]);
                $arr[32] = preg_replace('#<!--IMG(.+?)--><img alt="" style="margin:0;padding:0;border:0;" src="(.+?)\/_ld\/(.+?)" align="" \/><!--IMG(.+?)-->#', '<!--dle_image_begin:'.$newsite.'/uploads/posts/_ld/\\3|--><img src="'.$newsite.'/uploads/posts/_ld/\\3" alt="'.$arr[15].'" title="'.$arr[15].'"><!--dle_image_end-->', $arr[32]);
                
                
                //смайлы
                $arr[32] = preg_replace('#<img alt="" src="http:\//s(.+?)ucoz.net\/sm\/(.+?)\/(.+?).gif">#', "<!--smile:\\3--><img style=''vertical-align: middle;border: none;'' alt=''\\3'' src=''/engine/data/emoticons/\\3.gif''><!--/smile-->", $arr[32]);
                $arr[32] = preg_replace('#<img src="http:\//s(.+?)ucoz.net\/sm\/(.+?)\/(.+?).gif" align="absmiddle" border="0">#', "<!--smile:\\3--><img style=''vertical-align: middle;border: none;'' alt=''\\3'' src=''/engine/data/emoticons/\\3.gif''><!--/smile-->", $arr[32]);
                
                //заменяем укозовский спойлер
                $id_spoiler = "sp".md5( microtime().uniqid( mt_rand(), TRUE ) );
                $arr[32] = preg_replace('/<!--uSpoiler-->(.*)<!--ust-->/', "<!--dle_spoiler--><div class=\"title_spoiler\"><img id=\"image-" . $id_spoiler . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" src=\"{THEME}/dleimages/spoiler-plus.gif\" />&nbsp;<a href=\"javascript:ShowOrHide(''" . $id_spoiler . "'')\"><!--spoiler_title-->Показать / Скрыть текст<!--spoiler_title_end--></a></div><div id=\"" . $id_spoiler . "\" class=\"text_spoiler\" style=\"display:none;\"><!--spoiler_text-->", $arr[32]);
                $arr[32] = preg_replace('#<!--/ust--></div></div>#', '<!--spoiler_text_end--></div><!--/dle_spoiler-->', $arr[32]);
                //замена остальных укоз стандартов
                
                
                
                
                
                $dat_e = date('Y-m-d G:i:s' ,$arr[5]);
                
                    
                if($arr[32] != ""){
                
                
                
                if ($arr[24] != ""){
                $folder = floor($arr[0] / 100);
                $link = ("<a href=" ."$newsite" ."/_ld/" ."$folder"."/"."$arr[0]" ."_" ."$arr[24]"."><div id=''dowserver'' title=''Скачать с сервера $arr[23]''></div></a>");
                }
                else $link="";
                
                if ($arr[22]!= ""){
                $flink = ("<a href=''$arr[22]''><div id=''downarod'' title=''Скачать удалённо $arr[23]''></div></a>");
                }
                else $flink="";
        
        
                
                
                
                $query = "INSERT IGNORE INTO {$prefix}_post (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`, `topic_id`) VALUES
    ('0', '$arr[26]', '$dat_e', '', '$arr[32]<br>$link $flink', '', '$arr[15]', '', '', '4', 'load_{$arr[0]}', '$arr[8]', '1', '1', '1', '0', '1', '', '0', '0', '0');";
                
                
        
                
                
                $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><b>Вероятно, текст содержит недопустимые символы, в частности, кавычки</b><br><br></font>");} else echo "Файл «$arr[15]» успешно сконвертирован<br>";
                
                
                
                
                
                $newid = mysql_insert_id();
                
                //if($arr[9] != "0"){}
                
                
                $query = "INSERT IGNORE INTO {$prefix}_post_extras (`eid`, `news_id`, `news_read`, `allow_rate`, `rating`, `vote_num`, `votes`, `view_edit`, `disable_index`, `related_ids`, `access`, `editdate`, `editor`, `reason`, `user_id`) VALUES
    ('0', '$newid ', '$arr[21]', '0', '0', '0', '0', '0', '0', '', '', '0', '', '', '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><b>Вероятно, текст содержит недопустимые символы, в частности, кавычки</b><br><br></font>");} else echo "Информация статьи «$arr[15]» успешно сконвертирована<br><br>";
                
                
                
                
                
                
                
                //echo "(0)$arr[0](0)","<br>","(1)$arr[1](1)","<br>","(2)$arr[2](2)","<br>","(3)$arr[3](3)","<br>","(4)$arr[4](4)","<br>","(5)$arr[5](5)","<br>","(6)$arr[6](6)","<br>","(7)$arr[7](7)","<br>","(8)$arr[8](8)","<br>","(9)$arr[9](9)","<br>","(10)$arr[10](10)","<br>","(11)$arr[11](11)","<br>","(12)$arr[12](12)","<br>","(13)$arr[13](13)","<br>","(14)$arr[14](14)","<br>","(15)$arr[15](15)" ,"<br>","(16)$arr[16](16)","<br>","(17)$arr[17](17)","<br>","(18)$arr[18](18)","<br>","(19)$arr[19](19)","<br>","(20)$arr[20](20)","<br>","(21)$arr[21](21)","<br>","(22)$arr[22](22)","<br>","(23)$arr[23](23)","<br>","(24)$arr[24](24)","<br>","(25)$arr[25](25)","<br>","(26)$arr[26](26)","<br>","(27)$arr[27](27)","<br>","(28)$arr[28](28)","<br>","(29)$arr[29](29)","<br>","(30)$arr[30](30)","<br>","(31)$arr[31](31)","<br>","(32)$arr[32](32)","<br>","(33)$arr[33](33)","<br>","(34)$arr[34](34)","<br>","(35)$arr[35](35)","<br>","(36)$arr[36](36)","<br>","(37)$arr[37](37)","<br>","(38)$arr[38](38)","<br>","(39)$arr[39](39)","<br>","(40)$arr[40](40)","<br>","(41)$arr[41](41)";
            
                
                
                
                
                
                }
            }
        }   
    
    
    echo "Конвертация файлов завершена!<br>";
    
    ?>
    bandicam 2017-10-02 20-12-14-058.jpg
     
  2. Andrij

    Andrij Бывалый

    Регистрация:
    30 мар 2017
    Сообщения:
    511
    Лучших ответов:
    2
    Рейтинги:
    +85 / 28 / -0
    у меня в dle нету такой колонки как topic_id. У тебя она как доп.поле?
     
  3. TopicStarter Overlay
    Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    Andrij нет у меня чистый движок ничего вообще в нем нет даже новостей или категорий
     
  4. Andrij

    Andrij Бывалый

    Регистрация:
    30 мар 2017
    Сообщения:
    511
    Лучших ответов:
    2
    Рейтинги:
    +85 / 28 / -0
    а откуда ты взял topic_id?
     
  5. TopicStarter Overlay
    Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    Andrij в скрипте так было) я ничего там не менял так как по инструкции вообще ничего про это не пишется...
    если удалить topic_id то идет другая ошибка
    Column count doesn't match value count at row 1
     
  6. Andrij

    Andrij Бывалый

    Регистрация:
    30 мар 2017
    Сообщения:
    511
    Лучших ответов:
    2
    Рейтинги:
    +85 / 28 / -0
    у тебя в таблице dle_post нету колонки topic_id. Либо сосздай такую, либо удали последнии аргументы импорта
     
  7. TopicStarter Overlay
    Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    выше написал же что идет ошибка если удалить аргументы
     
  8. Andrij

    Andrij Бывалый

    Регистрация:
    30 мар 2017
    Сообщения:
    511
    Лучших ответов:
    2
    Рейтинги:
    +85 / 28 / -0
    плохо удаляете, тогда попробуйте создать колонку с таким названиям, а потом просто удалить)
     
Яндекс.Метрика