ФорумПрограммирование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%

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

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