Многобайтовая функция для замены preg_match_all?

Я ищу многобайтовую функцию для замены preg_match_all(), Мне нужен один, который даст мне массив совпадающих строк, таких как $matches аргумент от preg_match(), Функция mb_ereg_match() кажется, не делает это - это только дает мне логическое значение, указывающее, были ли какие-либо совпадения.

Глядя на страницу функций mb_*, я не вижу ничего, что заменяет функциональность preg_match(), Что я использую?

Изменить Я идиот. Я первоначально отправил этот вопрос с просьбой о замене preg_match что, конечно, ereg_match, Однако оба они только возвращают первый результат. То, что я хотел, было заменой preg_match_all, который возвращает все тексты совпадений. Но в любом случае, u Модификатор работает в моем случае для preg_match_all Как отметил Хакре.

2 ответа

Решение

Вы смотрели в mb_ereg?

Кроме того, вы можете передать строку в кодировке UTF-8 в preg_match с использованием u модификатор, который может быть той поддержкой многобайтовой поддержки, которая вам нужна. Другой вариант - кодировать в UTF-8, а затем кодировать результаты обратно.

См. Также ответ на связанный вопрос: безопасен ли многобайтовый PHP preg_functions?

PHP: preg_grep руководство

$matches = preg_grep('/(needles|to|find)/u', $inputArray);

Возвращает массив, проиндексированный с использованием ключей из входного массива.

Обратите внимание на модификатор /u, который включает многобайтовую поддержку.

Надеюсь, что это помогает другим.

Другие вопросы по тегам