ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


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

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



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


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




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

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

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

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


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




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

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

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


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


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




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



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


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




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



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


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




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



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


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




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

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



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


Покинул форум
Сообщений всего: 889
Дата рег-ции: Март 2009  
Откуда: Беларусь
Репутация: 89




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



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


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




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


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

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

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



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


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




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

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



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


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




вместо 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


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




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



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


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




понял. Улыбка

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

> Похожие темы: Замена у всех ссылок одного домена на другой во всех постах
Темы Форум Информация о теме Обновление
Стали регистрироваться спам-боты
На форуме, после обновления до версии RC1, стали регистрироваться спам-боты
Общие вопросы Ответов: 22
Автор темы: Borman
3 февраля 2010 — 11:41
Автор: yura3d
Оптимизация страницы
Как оптимизировать страницу форума?
Общие вопросы Ответов: 40
Автор темы: m0ntag
30 мая 2013 — 06:51
Автор: CAB
Вопрос по правилам
Как изменить правила для своего форума?
Настройка форума Ответов: 4
Автор темы: Xantr
25 апреля 2009 — 20:15
Автор: Xantr
Помогите разобраться с проблемой на форуме!!!
Скачал скрипт форума установил!!!
Общие вопросы Ответов: 8
Автор темы: Roman1493
3 января 2010 — 06:43
Автор: electron
Подфорумы - нет значков
нет графических значков перед названием подфорума
Решение проблем Ответов: 2
Автор темы: Antares
10 января 2010 — 20:55
Автор: Antares
 



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




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

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

Parse error: syntax error, unexpected $end in /home/exbb/exbb.info/www/community/include/page_tail.php on line 75