Руссифицируем Sphider 1.3.6 или Sphider vs UTF-8
1 января 2014 в 0:00 в категории Прочее, Статьи о php 3 комментарияДоброго времени суток, уважаемые читатели моего блога!
Столкнулся с Sphider’ом в учебных целях, и обнаружил, что мой сайт (http://nikita-sp.com.ua) не индексируется этим роботом! Выдает ошибки в SQL запросах и все тут!
Я начал перерывать форумы, листать Google… но все тщетно. В конечном итоге я решил сам бороться с проблемой кодировок и все принудительно конвертировать в кодировку, с которой работает скрипт — windows-1251!
Итак, я решил задачу следующим образом:
1) Открываем файл /admin/spiderfuncs.php
2) Ищем начало функции clean_file() (~575 строка) и после строки с объявлением глобальных переменных:
global $entities, $index_host, $index_meta_keywords;
вставляем следующую строку:
$file = iconv("utf-8", "windows-1251", $file);
3) Открываем файл /settings/database.php и сразу же после соединения с БД (~10 строка):
$success = mysql_pconnect ($mysql_host, $mysql_user, $mysql_password);
вставляем:
mysql_query("SET NAMES 'cp1251'"); mysql_query("SET CHARACTER SET 'cp1251'");
Таким образом мы заставим робота понимать русские символы и работать корректно. Теперь переустановите робота (перезалейте базу данных) для того чтобы очистить БД от мусора, который вы могли туда накидать во время индексирования сайтов в другой кодировке и пользуйтесь на здоровье!
Если все равно что-то не верно отображается — попробуйте изменить в файле header.html (/templates/standart/) в строке:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
кодировку на:
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
На этом все!
Удачного поиска, господа! 🙂
3 комментария
Добрый день, отличная инструкция! Всё заработало)
Не могли бы вы подсказать, как Sphider работать через прокси?
Конкретнее — чтоб он сайты в сети i2p индексировал?
Рад что помог, ставьте +1 в сетях — это поможет мне)
Вы знаете, не сталкивался с этим вопросом и, к сожалению, подсказать не смогу. Попробуйте почитать на оф. сайте, возможно, там вы найдете необходимую информацию.
Рекомендую использовать sphider-plus 2.9 сразу, там этот баг уже исправлен. Ну, и она намного функциональнее.