Notice: Undefined index: status in /home/exbb/exbb.info/www/community/topic.php on line 488 Notice: Undefined index: title in /home/exbb/exbb.info/www/community/topic.php on line 488 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 491 Notice: Undefined index: name in /home/exbb/exbb.info/www/community/topic.php on line 493 Notice: Undefined index: avatar in /home/exbb/exbb.info/www/community/topic.php on line 496 Notice: Undefined index: avatar in /home/exbb/exbb.info/www/community/topic.php on line 496 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 499 Notice: Undefined index: joined in /home/exbb/exbb.info/www/community/topic.php on line 500 Notice: Undefined index: location in /home/exbb/exbb.info/www/community/topic.php on line 501 Notice: Undefined index: name in /home/exbb/exbb.info/www/community/topic.php on line 502 Notice: Undefined index: icq in /home/exbb/exbb.info/www/community/topic.php on line 505 Notice: Undefined index: icq in /home/exbb/exbb.info/www/community/topic.php on line 506 Notice: Undefined index: aim in /home/exbb/exbb.info/www/community/topic.php on line 507 Notice: Undefined index: status in /home/exbb/exbb.info/www/community/topic.php on line 517 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: showemail in /home/exbb/exbb.info/www/community/topic.php on line 557 Notice: Undefined index: visible in /home/exbb/exbb.info/www/community/topic.php on line 593 ExBB Community :: Замена у всех ссылок одного домена на другой во всех постах
ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (2): [1] 2 »   

> Описание: изменение ссылок в ветках форума после переноса на другой хостинг
1Bot
Отправлено: 11 апреля 2012 — 08:33
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Замена у всех ссылок одного домена на другой во всех постах

Обсуждалось в теме Изменение ссылок в ветках форума после переноса на другой хостинг

Скрипт нужно залить в корень форума и вызвать в браузере.

change_url.php
CODE:
<?php
#change_url.php
/****************************************************************************
Замена у всех ссылок одного домена на другой в постах форума ExBB FM 1.0 RC1.
Изменение ссылок в ветках форума после переноса на другой хостинг.

(c) 1Bot aka Strobe, 2012
****************************************************************************/

set_time_limit(0); // не ограничиваем время работы скрипта (важно для больших форумов!)

// основные параметры скрипта
$old_forum_addr = 'http://www.local.my'; // старый адрес сайта форума
$new_forum_addr = 'http://forum.local.my'; // новый адрес сайта форума

// будем искать и сравнивать по большим буквам, а заменять на малые
$old_forum_addr = strtoupper($old_forum_addr);
$new_forum_addr = strtolower($new_forum_addr);

$replace_count = 0; // количество замен

function replace_url($post)
{
global $replace_count, $old_forum_addr, $new_forum_addr;
// return str_replace($old_forum_addr, $new_forum_addr, $post);
// такой подход не учитывает регистр, в котором может быть прописан адрес,
// поэтому будем искать и сравнивать по большим буквам, а заменять на малые
$pos = strpos(strtoupper($post), $old_forum_addr);
if ($pos === false) return $post;
else
{
$replace_count++;
return substr($post, 0, $pos) . $new_forum_addr
. replace_url(substr($post, $pos + strlen($old_forum_addr)));
}
}

echo <<<DATA
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=win1251">
<meta http-equiv="Content-Language" content="ru">
<title>Замена у всех ссылок одного домена на другой в постах форума ExBB FM 1.0 RC1</title>
</head>
<body>
<p>Изменение ссылок в ветках форума после переноса на другой хостинг.</p>
<p>Cтарый адрес сайта форума: {$old_forum_addr}</p>
<p>Новый адрес сайта форума: {$new_forum_addr}</p>
<hr />
<pre>
DATA;

if ($df = @opendir('.'))
{ // пройти по всем форумам
while ($f = readdir($df))
{
if ('.' == $f || '..' == $f || !is_dir($f) || 'FORUM' !== strtoupper(substr($f,0,5))) continue;
// $f - папка форума /forumN (N - номер форума)
echo $f . "\n";
if ($dt = @opendir($f))
{ // пройти по всем темам
while ($t = readdir($dt))
{
if ('THD.PHP' !== strtoupper(substr($t,-7,7))) continue;
// $t - файл темы /forumN/id-thd.php (N - номер форума, id - номер темы)
$t = "./$f/$t";
echo ' ' . $t;

// считываем файл с сообщениями темы
// Читает файл для возможной записи в него не закрывая файла
$fp = @fopen($t, 'a+') or die("Could not read from the file <strong>$t</strong>");
flock($fp, 2);
$filesize = filesize($t);
$filesize = (0 === $filesize) ? 1 : $filesize-8;
fseek($fp, 8);
$th = fread($fp, $filesize);
$th = unserialize($th);

// пройти по всем сообщениям
$replace_count = 0;
foreach ($th as $id => $post_arr)
{ // замена url для сообщения
$th[$id]['post'] = replace_url($post_arr['post']);
}

// сохранение файла с сообщениями темы если были замены
if ($replace_count)
{
echo ' (произведено замен: ' . $replace_count . ')';
fseek ($fp, 0);
ftruncate ($fp, 0);
fwrite($fp, '<?die;?>' . serialize($th));
fflush($fp);
}
flock($fp, 3);
fclose($fp);

unset($th, $fp);
echo "\n";
}
closedir($dt);
}
}
closedir($df);
}

echo <<<DATA
</pre>
</body>
</html>
DATA;
?>


нужно задать перед запуском
CODE:
// основные параметры скрипта
$old_forum_addr = 'http://www.local.my'; // старый адрес сайта форума
$new_forum_addr = 'http://forum.local.my'; // новый адрес сайта форума


P.S. Собственно с помощью этого скрипта можно во всех постах форума поменять любую комбинацию символов на любую.

(Отредактировано автором: 11 апреля 2012 — 08:38)

 
 
Леший
Отправлено: 11 апреля 2012 — 10:11
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Дек. 2011  
Репутация: 7




А никто более простой способ не пробовал?- применить модуль цензуры на форуме?
 
 
1Bot
Отправлено: 11 апреля 2012 — 11:00
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Леший пишет:
А никто более простой способ не пробовал?- применить модуль цензуры на форуме?

Скрипт предназначен в первую очередь для переноса на другой хостинг.
При переносе ссылки на сообщения форума, которые использовались на старом хостинге остаются таковыми, а необходимо их преобразовать, чтобы они указывали на те же сообщения, но на новом хостинге, т.е. не было потери связанности форума при его переносе.

Модуль цензуры в этом случае никак помочь не может.
 
 
Леший
Отправлено: 11 апреля 2012 — 13:50
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Дек. 2011  
Репутация: 7




Блин,где вы раньше были с этим скриптом,когда я 500 html страниц вручную перетряхивал, выдергивая копирайты и скрипты рекламы бесплатного хостинга......
 
 
1Bot
Отправлено: 23 июля 2012 — 19:19
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Рекомендую для этого форума использовать данный скрипт для смены ссылок старого домена на новый.
 
 
electron
Отправлено: 23 июля 2012 — 19:57
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3917
Дата рег-ции: Февр. 2009  
Репутация: 341




Улыбка они уже давно заменены
 
 
BON
Отправлено: 24 июля 2012 — 04:54
Post Id



Администратор
ExBB Team
Admin


Покинул форум
Сообщений всего: 2762
Дата рег-ции: Нояб. 2010  
Откуда: СССР/Белгород
Репутация: 72




electron пишет:
они уже давно заменены

причем сразу, как только был поставлен форум Улыбка
 
 
Отправлено: 24 июля 2012 — 08:25
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




Поиск от Гугла (и возможно Яндекса) поправьте, он ищет по старому домену.
 
 
electron
Отправлено: 24 июля 2012 — 08:45
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3917
Дата рег-ции: Февр. 2009  
Репутация: 341




Zeg пишет:
Поиск от Гугла (и возможно Яндекса) поправьте, он ищет по старому домену.

действительно, проглядели Улыбка исправлено. спасибо
 
 
roma1
Отправлено: 18 октября 2013 — 16:21
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 811
Дата рег-ции: Янв. 2011  
Откуда: СССР
Репутация: 24




вот что выдало при вызове скрипта
CODE:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/roma/data/www/my-bastion.pp.ua/change_url.php on line 84


правда я прописал адреса на скрине видно где стрелкой позначено, вместо текста старый и новый адрес. может нужно было как то иначе?

(Отредактировано автором: 18 октября 2013 — 16:25)

 
 
Yamaliya
Отправлено: 18 октября 2013 — 16:37
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 662
Дата рег-ции: Авг. 2012  
Откуда: Ямал
Репутация: 20




roma1 пишет:
может нужно было как то иначе?

Надеюсь вы писали не после двух слешей, а до них, в одинарных кавычках. Двойной слеш в данном случае - это просто комментарий.
 
 
electron
Отправлено: 18 октября 2013 — 16:40
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3917
Дата рег-ции: Февр. 2009  
Репутация: 341




вместо http://www.local.my надо было писать старый адрес, а вместо http://forum.local.my - новый адрес форума
 
 
roma1
Отправлено: 18 октября 2013 — 17:01
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 811
Дата рег-ции: Янв. 2011  
Откуда: СССР
Репутация: 24




понял, ступил. спасибо.
(Добавление)
сделал так
CODE:
// основные параметры скрипта
$old_forum_addr = 'http://arxevarius.com.ua'; // старый адрес сайта форума
$new_forum_addr = 'http://my-bastion.pp.ua'; // новый адрес сайта форума


та же ошибка блин Огорчение
 
 
1Bot
Отправлено: 21 октября 2013 — 13:45
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




roma1
Прикрепите исправленный Вами файл change_url.php
 
 
roma1
Отправлено: 21 октября 2013 — 14:08
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 811
Дата рег-ции: Янв. 2011  
Откуда: СССР
Репутация: 24




понял. Улыбка
 
 
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Утилиты и конвертеры »

> Похожие темы: Замена у всех ссылок одного домена на другой во всех постах
Темы Форум Информация о теме Обновление
где разместился ваш exbb
какой вы используете хостинг
Хостинг Ответов: 9
Автор темы: wersi
30 декабря 2013 — 02:21
Автор: Nikaru
Битые ссылки
Проверка ссылок на работоспособность
Обсуждение Ответов: 6
Автор темы: paravoz
3 января 2018 — 06:47
Автор: Guyver
Не работает bb-код + еще неисправности.
Проблемы после переноса.
Решение проблем Ответов: 6
Автор темы: 3001
12 февраля 2010 — 04:44
Автор: 3001
Не работает админпанель
Установил последнюю версию форума. Не работает админпанель
Решение проблем Ответов: 9
Автор темы: FlyRus
2 июня 2013 — 18:08
Автор: electron
Пиксельная карта
генератор пиксельной карты форума
Обсуждение Ответов: 0
Автор темы: mastersound
9 января 2010 — 18:20
Автор: mastersound
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.1448]     [ ]