Получите количество многобайтовых символов перед сопоставлением с помощью preg_match() (параметр PREG_OFFSET_CAPTURE бесPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Получите количество многобайтовых символов перед сопоставлением с помощью preg_match() (параметр PREG_OFFSET_CAPTURE бес

Сообщение Anonymous »

Я пытаюсь найти строку в кодировке UTF8 с помощью preg_match.

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

preg_match('/H/u', "\xC2\xA1Hola!", $a_matches, PREG_OFFSET_CAPTURE);
echo $a_matches[0][1];
Это должно вывести 1, поскольку «H» находится под индексом 1 в строке «¡Hola!». Но он печатает 2. Похоже, что он не рассматривает объект как строку в кодировке UTF8, хотя я передаю модификатор «u» в регулярном выражении.
У меня есть следующие настройки в моем php.ini и другие функции UTF8 работают:

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

mbstring.func_overload = 7
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/172 ... set-captur
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»