ФорумПрограммированиеPHP для идиотов → Помогите со строкой

Помогите со строкой

  • FBI

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 29 января 2010 г. 11:57

    Я в php новичёк, столкнулся с делемой.Есть строка в utf8
    $ss="bdИК";
    Делаю простой цикл:

    for ($i = 0; $i < strlen($ss); $i++) if ($ss[$i]=="И") echo $ss[$i];

    ничего не выводит :( , а если в условии вставить вместо русской "И" англ "b", то всё ок.
    В нете нарыл, что strlen с utf8 не дружит. Подключил php_mbstring.dll и заменил strlen на mb_strlen - всё равно не пашет. Может кто-то из вас сталкивался с этой проблемой?

  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 января 2010 г. 12:01, спустя 4 минуты 17 секунд

    [man]mb_strlen[/man]
    все умрут, а я изумруд
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 29 января 2010 г. 12:02, спустя 1 минуту 11 секунд

    echo $str{$id};
    а вообще есть str_posstrpos
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 29 января 2010 г. 12:02, спустя 23 часа 59 минут 23 секунды

    кстати, я так не пробовал, но интересно

    for ($i = 0, $count = count($str); $i < $count; $i++) {
      if ('И' == $str[$i]) echo $str[$i];
    }

    // or

    foreach ($str as $char) {
      if ('И' == $char) {
       echo $char;
       }
    }
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 29 января 2010 г. 12:03, спустя 1 минуту 42 секунды

    krasun, Invalid argument supplied for foreach
    Оно только для массивов
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 29 января 2010 г. 12:04, спустя 55 секунд

    о, интересно было все таки ))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 января 2010 г. 12:20, спустя 15 минут 37 секунд

    ужасная проблема!
    Спустя 36 сек.
    mb_substr($str, $i, 1) :)
    Сапожник без сапог
  • ivanscm

    Сообщения: 1251 Репутация: N Группа: Джедаи

    Spritz 29 января 2010 г. 12:43, спустя 23 минуты 18 секунд

    а по сути строка это массив символов. непомню в каком языке
    С возвращением, Пiха! hyperoff.ru - качественный хостинг php
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 января 2010 г. 12:44, спустя 48 секунд


    а по сути строка это массив символов. непомню в каком языке
    по сути в любом :)

    и даже в пхп до версии 6, там есть понятие банарные и ютф строки.
    Сапожник без сапог
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 30 января 2010 г. 11:06, спустя 22 часа 21 минуту 36 секунд

    Побуду эдвордозаменителем, в питоне можно так
    print word[1:6]
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 30 января 2010 г. 11:27, спустя 21 минуту 12 секунд

    вообще-то найти нужную букву сразу без цикла можно через mb_strpos()

    если цикл очень хочется, то так: for ($i=0, $n=mb_strlen($s); $i < $n; ++$i) if (mb_substr($s, $i ,1) == …

    и вообще синтаксис $s[$i] для строк считается нежелательным. для получения байта из строки используются фигурные скобки $s{$i}
    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 30 января 2010 г. 11:36, спустя 9 минут 8 секунд

    P.S. Только не надо ныть "нафиг нужен этот UTF-8, с 1251 всё намного проще". реальность такова:

    Этот график был опубликован в официальном гуглоблоге. Данные, соответственно, берутся из индексируемых поисковой системой Google веб-страниц.
    Так что некуда деваться — надо учить mb_* и качать мышцу.
    ιιlllιlllι унц-унц
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 30 января 2010 г. 11:38, спустя 2 минуты 20 секунд

    Были бы еще интересны графики для России …
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 30 января 2010 г. 11:46, спустя 7 минут 31 секунду

    Россия как всегда будет долго запрягать. Самые посещаемые сайты большей частью уже в уникоде.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 января 2010 г. 11:47, спустя 58 секунд


    Были бы еще интересны графики для России …
    хуй - 95%
    пизда - 5%

    статистика полов рунета!
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!