Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Почему в режиме $strict in_array не верную кодировку?
Добрый день!
Причина в том, Вы выбираете по одному байту, а для каждый символа кириллицы в UTF-8 нужно выбирать по 2 байта и для строки "АаБбВв" strlen выдаёт значение 12, а не 6.
Покинул форум
Сообщений всего: 166
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
Vladimir Kheifets пишет:
Причина в том, Вы выбираете по одному байту, а для каждый символа кириллицы в UTF-8 нужно выбирать по 2 байта и для строки "АаБбВв" strlen выдаёт значение 12, а не 6.
Я вот покурил мануалы и не совсем понимаю, вы написали регулярку которая делает так:
Оставь мне только русский символ, любого регистра в юникоде. и если найдёшь более одного пробела замени его на один. Но ведь ^ после [ это считается исключающем? Т.е. Не оставь мне русские буквы а наоборот. Почему получается так, что работает по первому сценарию?
Строитель
Отправлено: 18 Июля, 2018 - 11:25:47
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Шаблон [^а-яё\d ] можно прочитать так:
Найдено совпадение, если текущий символ НЕ соответствует набору символов, перечисленному в символьном классе [...]
Т.е., поиск успешен, если текущий символ: НЕ кириллическая буква, НЕ цифра, НЕ пробел (хотя пробелы лучше обозначать с помощью символьного класса \s)
Doox911
Отправлено: 18 Июля, 2018 - 11:57:42
Частый гость
Покинул форум
Сообщений всего: 166
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
Строитель пишет:
Шаблон [^а-яё\d ] можно прочитать так:
Найдено совпадение, если текущий символ НЕ соответствует набору символов, перечисленному в символьном классе [...]
Т.е., поиск успешен, если текущий символ: НЕ кириллическая буква, НЕ цифра, НЕ пробел (хотя пробелы лучше обозначать с помощью символьного класса \s)
Абсолютно согласен. Но как тогда остаются только кириллические символы?
Строитель
Отправлено: 18 Июля, 2018 - 15:24:04
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Doox911 пишет:
Но как тогда остаются только кириллические символы?
Пример последней версии вашего кода, пожалуйста, опубликуйте.
armancho7777777
Отправлено: 18 Июля, 2018 - 16:38:10
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Doox911 пишет:
Но как тогда остаются только кириллические символы?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.