Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: UTF-8 и preg_replace
ТвойWeb » WebMaster класс » PHP/Perl » UTF-8 и preg_replace

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

1. UFO - 04 Февраля, 2012 - 18:17:35 - перейти к сообщению
Всем привет!

Есть HTML сайты, на которых тег {SAPE} при помощи preg_replace заменяется ссылками, и они выводится. Как известно preg_replace не дружит с UTF-8. Но поскольку система SAPE выдает ссылки на русском языке пришлось модифицировать пару строк, добавив перекодировку при помощи iconv:

CODE:
$page = preg_replace('#\{SAPE\((\d+)\)\}#e', iconv('UTF-8','cp1251','$sape->return_links($1)'), $page);
$page = iconv('cp1251','UTF-8',$page);


И всё хорошо работает на целиком английских сайтах, но с русскими ссылками от SAPE.
А вот пошли сайты на русском языке, и там все отображается только до тега

CODE:
</title>


Т.е. одно лишь название страницы, да и то в виде знаков

CODE:
ЕЖЕДНЕВНЫЕ РќРћР’РћРЎРўР


Что делать? preg_replace - моя самая нелюбимейшая функция в PHP, всегда с ней проблемы.

P.S. Простые способы с добавлением "u" в preg_replace проверял - что-то не работает, может не так добавлял.

Форум на AlfaSpace.NET


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

[Script Execution time: 0.0301]     [ Gzipped ]