За последние 24 часа нас посетили 42583 программиста и 1814 роботов. Сейчас ищут 877 программистов ...

strlen работа с русскими буквами ?

Тема в разделе "Вопросы от блондинок", создана пользователем wap7.ru, 10 сен 2008.

  1. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    strlen (test) отдает 4
    strlen (тест) отдает 8

    не поскажете в чем подвох?
     
  2. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Эммм...... Русский ...
    Мб каждый символ = 2 байта?
    2х4 = 8..
    Могу только это предположить.
     
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    в кодировке. Спорим твой «текст» в utf-8? :)

     
  4. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Так и думал))
    Попробуй для примера, перевести файлег в windows-1251 или в koi8r.
    Какой результат будет?
     
  5. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    результат будет целый, положительный %)
     
  6. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    тогда mb_strlen
     
  7. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Кодировка!!! win-1251
     
  8. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
  9. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    А нафига?
    Он же просто спрашивал, в чем подвох........
     
  10. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    спасибо за помощь!

    конечно база у меня в utf8

    сайт у меня для телефонов поэтому
    не получится

    так что получается: надо определить что буквы русские и делить результат на 2?

    есть функция определения языка символов?
     
  11. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    PHP:
    1. <?php
    2. echo mb_strlen ('тест','utf8');  // 4
    3. ?>
     
  12. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
  13. Anonymous

    Anonymous Guest

    Еще можно включить mb_overload что бы не переписывать все.
     
  14. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    а что дает сия директивка?
     
  15. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Переопределяет вызовы функций strlen, strpos и т.д. (зависит от уровня) на аналоги из mb_*
     
  16. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Спс, буду знать.
     
  17. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    спасибо!