Многобайтовая функция для замены 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?
$matches = preg_grep('/(needles|to|find)/u', $inputArray);
Возвращает массив, проиндексированный с использованием ключей из входного массива.
Обратите внимание на модификатор /u, который включает многобайтовую поддержку.
Надеюсь, что это помогает другим.