Исправление URL с русскими символами

Если у вас возникают проблемы и вопросы по настройке форума phpBB3 либо выскакивают непонятные ошибки, не устанавливаются либо криво работают модификации, то этот раздел для вас. Обсуждаем все вопросы, связанные со стилями, модификациями, доработками и проблемами их использования.
Перед тем, как обратиться за помощью, обязательно заполните свой профиль (укажите ссылку на свой форум). Если есть вопрос по конкретной модификации, то обязательно пользуемся поиском по форуму, потому как, возможно, уже есть анонс этого мода и соответственно вопрос задается в теме анонса.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----
Ответить
Аватара пользователя
dqdmitry
Самый Любознательный
Самый Любознательный
Сообщения: 377
Стаж: 11 лет 4 месяца
Откуда: Ангарск
Контактная информация:

Исправление URL с русскими символами

Сообщение dqdmitry »

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

И так. Делаем кликабельными УРЛы (ссылки) с кириллическими символами. Надеюсь, что кому-то будет полезным. (взято здесь).

Открыть: includes/functions.php, найти:

Код: Выделить всё

            return "[a-z]$scheme*:/{2}(?:(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?"; 
заменить на:

Код: Выделить всё

            return "[a-z]$scheme*:/{2}(?:(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[\pLa-z0-9.]+:[\pLa-z0-9.]+:[\pLa-z0-9.:]+\])(?::\d*)?(?:/(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?"; 
найти:

Код: Выделить всё

            return "www\.(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?"; 
заменить на:

Код: Выделить всё

            return "www\.(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+(?::\d*)?(?:/(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?"; 
найти:

Код: Выделить всё

            return "(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?"; 
заменить на:

Код: Выделить всё

            return "(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*(?:/(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?"; 
Открыть: includes/functions_content.php, найти:

Код: Выделить всё

    $short_url = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url; 
заменить на:

Код: Выделить всё

    $short_url = (utf8_strlen($url) > 55) ? utf8_substr($url, 0, 39) . ' ... ' . utf8_substr($url, -10) : $url; 
найти:

Код: Выделить всё

        $magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie'; 
заменить на:

Код: Выделить всё

        $magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ieu'; 
найти:

Код: Выделить всё

        $magic_url_match[] = '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#ie'; 
заменить на:

Код: Выделить всё

        $magic_url_match[] = '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#ieu'; 
найти:

Код: Выделить всё

        $magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#ie'; 
заменить на:

Код: Выделить всё

        $magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#ieu'; 
Открыть: includes/message_parser.php, найти:

Код: Выделить всё

        if (!preg_match('#^' . get_preg_expression('url') . '$#i', $in) && !preg_match('#^' . get_preg_expression('www_url') . '$#i', $in)) 
заменить на:

Код: Выделить всё

        if (!preg_match('#^' . get_preg_expression('url') . '$#iu', $in) && !preg_match('#^' . get_preg_expression('www_url') . '$#iu', $in)) 
найти:

Код: Выделить всё

        if (preg_match('#^' . get_preg_expression('url') . '$#i', $url) ||
            preg_match('#^' . get_preg_expression('www_url') . '$#i', $url) ||
            preg_match('#^' . preg_quote(generate_board_url(), '#') . get_preg_expression('relative_url') . '$#i', $url)) 
заменить на:

Код: Выделить всё

        if (preg_match('#^' . get_preg_expression('url') . '$#iu', $url) ||
            preg_match('#^' . get_preg_expression('www_url') . '$#iu', $url) ||
            preg_match('#^' . preg_quote(generate_board_url(), '#') . get_preg_expression('relative_url') . '$#iu', $url)) 
нуевонафигэтотавтомод
#1
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Исправление URL с русскими символами

Сообщение DeaDRoMeO »

Ай яй яй, а кто это поиском плохо пользуется ??? Вот же по этой тематике))) Надо ж было вбить в поиск совсем логичную фразу (вставьте это в адресную строку и увидите)

Код: Выделить всё

http://yandex.ru/sitesearch?searchid=1937403&text=%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8&web=0&l10n=ru
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#2
Аватара пользователя
dqdmitry
Самый Любознательный
Самый Любознательный
Сообщения: 377
Стаж: 11 лет 4 месяца
Откуда: Ангарск
Контактная информация:

Исправление URL с русскими символами

Сообщение dqdmitry »

DeaDRoMeO писал(а):Ай яй яй, а кто это поиском плохо пользуется ???
Серёг, прости, искал не правильно :smu:sche_nie: :smu:sche_nie: :smu:sche_nie:
Удали пожалуйста тему.
нуевонафигэтотавтомод
#3
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Исправление URL с русскими символами

Сообщение DeaDRoMeO »

Да, к сожалению придется закрыть тему, эти правки полностью совпадают с правками анонса)) Всеравно спасибо за старания))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#4
Ответить