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 :: Русские символы в strlen
В чём проблема? Почему русские символы считает за 2, а цифры, запятые и т.п. за 1?
П.С. до этого не обращал внимания. Если надо: PHP Version 5.3.3
grefon
Отправлено: 02 Апреля, 2011 - 15:48:55
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
Потому что киррилические буквы в отличии от латиницы весят в 2 раза больше. А strlen считает не кол-во букв а кол-во байтов.
Не помню, но может у mb_strlen() такого нет.
----- ____________________________________________________________________
Ну как то так, наверное. http://grefon[dot]com
valenok
Отправлено: 02 Апреля, 2011 - 15:57:00
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
if(!preg_match("#^.{1,".$maxlength."}$#",$str)) too long;
----- Truly yours, Sasha.
JustUserR
Отправлено: 02 Апреля, 2011 - 19:54:35
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
dimka3210 пишет:
В чём проблема? Почему русские символы считает за 2, а цифры, запятые и т.п. за 1?
В качестве возможной причины осуществления некорректного функционирования предполагаемого PHP-приложения, допустимо рассмотрение аспекта проведения действенных составляющих элементов на основании специфицированных информационных полей во вторичном внутреннем базовом элементном уровне трактования, относительно которого не обеспечивается выполнение предшествующий действий для поддержания организации совмещения унимодальных информационных составляющих объектов, относительно критериев ассоцированной кодовой таблицы и разграничивыющих и управляющих элементов
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
dimka3210
Отправлено: 03 Апреля, 2011 - 00:19:24
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011
Помог: 0 раз(а)
Всё решил. Спасибо всем кто помог. Проблема была в UTF8. Сделал через iconv.
Okula
Отправлено: 03 Апреля, 2011 - 00:39:06
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
dimka3210 пишет:
Всё решил. Спасибо всем кто помог. Проблема была в UTF8. Сделал через iconv.
зачем конвертировать кодировку если функция mb_strlen() отлично справляется с поставленной задачей. Нужно было прислушаться ещё ко 2 посту в теме.
dimka3210
Отправлено: 03 Апреля, 2011 - 00:40:12
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011
Помог: 0 раз(а)
Okula к сожалению почему то не получалось.
Okula
Отправлено: 03 Апреля, 2011 - 00:50:16
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
dimka3210, потому что 2-ым параметром кодировку нужно указывать. Тогда всё получится.
dimka3210
Отправлено: 03 Апреля, 2011 - 00:51:41
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011
Помог: 0 раз(а)
Okula пишет:
dimka3210, потому что 2-ым параметром кодировку нужно указывать. Тогда всё получится.
Возьму на заметку. Спасибо за хитрость) Теперь сожалею что раньше не использовал форум для обучения).
Okula
Отправлено: 03 Апреля, 2011 - 00:55:23
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Описание к функциям нужно внимательнее читать.
Мелкий
Отправлено: 03 Апреля, 2011 - 01:09:28
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
dimka3210 пишет:
Возьму на заметку. Спасибо за хитрость) Теперь сожалею что раньше не использовал форум для обучения).
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.