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

Проблема с функцией mb_stripos

  • progs

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

    Spritz Май 27, 2010, 12:28 п.п., спустя 1 час 38 минут 52 секунды

    Ищу с помощью данной функции вхождения введенных пользователем слов следующим образом:

    $keywords=split(' ',$name);  // $name содержит введенную пользователем строку поиска

    for ($i=0;$i<sizeof($keywords);$i++)
        if(mb_stripos($item['Name'],$keywords[$i]))  // $item['Name'] содержит строку, в которой ищутся совпадения
           echo 'OK';


    Проблема в следующем, если к примеру вводим слово для поиска "шкаф", то данная конструкция не находит вхождение данного слова в строке
    "ШКАФ КУХОННЫЙ размеры 150х20", а находит вхождение в строке "ЖАРОЧНЫЙ ЭЛЕКТРОШКАФ Кедр"…также случается и с другими словами, которые стоят в начале строки…подскажите в чем ошибка, почему функция не ищет вхождение в начале строки, и есть ли какая-нибудь альтернатива этой функции для поиска вхождений строки без учета регистра? Спасибо
  • phpdude

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

    Spritz Май 27, 2010, 10:49 д.п., спустя 22 часа 21 минуту 8 секунд

    progs, проблема не в функции, а в руках ее держащих

    mb_stripos() is case-insensitive. If needle is not found, it returns FALSE.


    if(mb_stripos(..) !== false) echo "found"
    Сапожник без сапог
  • artoodetoo

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

    Spritz Май 27, 2010, 1:31 п.п., спустя 2 часа 41 минуту 56 секунд

    ТС не указал какая кодировка используется в его скриптах. Если это НЕ utf-8, то надо применить setlocale (и ждать другие грабли),
    если utf-8, то надо использовать mb_* функции и не забыть mb_internal_encoding
    ιιlllιlllι унц-унц
  • traktor

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

    Spritz Апрель 7, 2014, 9:11 п.п., спустя 1411 дней 7 часов 39 минут

    artoodetoo, спасибо! про mb_internal_encoding я и не знал.
  • Абырвалг

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

    Spritz Апрель 7, 2014, 10:53 п.п., спустя 1 час 42 минуты 1 секунду

    хм, такое ощущение, что мы с этим товарищем на одном проекте работаем). Это неткат?
  • phpdude

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

    Spritz Апрель 7, 2014, 10:55 п.п., спустя 1 минуту 49 секунд

    LOL

    Спустя 9 сек.

    а неткат еще живой чтоли? не слышал про него давно

    Сапожник без сапог
  • Абырвалг

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

    Spritz Апрель 8, 2014, 12:19 д.п., спустя 1 час 24 минуты 23 секунды

    я видел предостаточно вакансий на него в ру-сегменте. Мы ессно под неткат не программим, у нас только симфони2. Просто почти все проекты - это перенос с нетката на сф2.

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