|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
WebDisaster |
|
|||
Опытный Профиль Группа: Участник Сообщений: 406 Регистрация: 22.6.2007 Репутация: нет Всего: 19 |
Доброго дня.
Пытаюсь решить задачу: из полного имени и отчества, которые получаю в одной переменной, нужно сделать инициалы. Чтобы получить второй инициал, пытаюсь читать первый символ после пробела, и столкнулся с тем, что mb_strpos() неправильно определяет позицию пробела в строке. Вся информация в utf-8; php 5.3.13 Не могу понять, в каком месте я затупил, и как сделать правильно. Только больно не бейте, если сможете - php не мой профиль Спасибо заранее
|
|||
|
||||
s1lver |
|
|||
Опытный Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
А что не так в получившемся выводе?
-------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
WebDisaster |
|
|||
Опытный Профиль Группа: Участник Сообщений: 406 Регистрация: 22.6.2007 Репутация: нет Всего: 19 |
Гы. Это ещё интересней. У меня выводит только так, причём без вариантов.
Выходит так, что у меня $pos всегда умножен на два Видимо, какой-то чудной косяк с php на сервере. Нужно на другом попробовать. P.S. Попробовал ещё на двух серверах - такая же фигня - (стоят php 5.2.17 и 4.3.9) Если $pos делить на два - тогда всё ОК. s1lver, а ты в какой кодировке файл сохранял, когда всё работало? В utf-8? Или в какой-нибудь однобайтной? Пока напрашивается такая мысль, что правильно этот код будет работать в однобайтных кодировках, а в utf-8 получаемую позицию пробела нужно делить на 2 ) Это сообщение отредактировал(а) WebDisaster - 13.1.2016, 11:45 |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Нужно явно и всегда указывать внутреннюю кодировку. Для всех mb_ функций. Это делает их сложно применимыми в бытовом смысле.
Вероятно, изначальная проблема в том, что mb_strpos был вызван без указания кодировки, а внутренняя mb-кодировка ни разу не utf/ Более удобная альтернатива - продаться регуляркам:
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
WebDisaster |
|
||||
Опытный Профиль Группа: Участник Сообщений: 406 Регистрация: 22.6.2007 Репутация: нет Всего: 19 |
Точно, дело в этом ) Следующий вариант работает уже правильно
|
||||
|
|||||
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |