VDS за 300р от нашего партнера SpaceWeb
[125]
08 Апр 2013, 11:43

Функция mb_preg_match_all

Привет!

Столкнулся с проблемой, функция preg_match_all не верно показывает положение искомой подстроки в строке. Исходная строка представлена в кодировке UTF-8, но даже если указать модификатор \u, то ничего не меняется. Очень нужна реализация функции mb_preg_match_all, есть ли у кого какие идеи?

#php

Комментарии (1)
grom 08.04.2013 13:47

Вот не плохая реализация:

if (!function_exists("mb_preg_match_all"))
{
function mb_preg_match_all($pattern, $subject, &$matches, $flags = PREG_PATTERN_ORDER, $offset = 0, $encoding = null)
{
if($encoding == null) $encoding = mb_internal_encoding();

$offset = strlen(mb_substr($subject, 0, $offset, $encoding));
$result = preg_match_all($pattern, $subject, $matches, $flags, $offset);

if ($result && ($flags & PREG_OFFSET_CAPTURE))
foreach($matches as &$match)
foreach($match as &$match)
$match[1] = mb_strlen(substr($subject, 0, $match[1]), $encoding);

return $result;
}
}

Работает корректно.
+3

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки:
Лучшее
[52]
16 Окт 2011, 15:38
Вывести все элементы POST
[просмотров 14051]
[74]
31 мая 2011, 11:48
Python проверка существования переменной
[просмотров 9722]
[4]
10 Окт 2018, 15:33
Как запретить просмотр сайта по IP?
[просмотров 8987]
[100]
19 Дек 2014, 16:16
User-agent для Internet Explorer 11
[просмотров 8842]
[315]
11 Авг 2011, 00:21
Спецификация HTML5 от W3C
[просмотров 7362]
[125]
21 Июл 2011, 14:04
Python Imaging Library (PIL)
[просмотров 7087]
[315]
16 Июл 2011, 20:03
Python работа с MySQL
[просмотров 5120]

Вести с Хабра