За последние 24 часа нас посетили 22607 программистов и 1015 роботов. Сейчас ищут 745 программистов ...

Помогите разобраться с поиском по строке

Тема в разделе "PHP для новичков", создана пользователем japan_parts, 2 июн 2023.

  1. japan_parts

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

    С нами с:
    28 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    Данные:

    Код (Text):
    1. $str1="Увы набор разобран( если надо могу собрать)";
    2.  
    3. $str2="набор разобран";
    4.  
    5.  
    6. mb_internal_encoding('utf-8');
    7. $str1 = preg_replace("/[^a-zA-ZА-Яа-яЁё0-9\s]/u" , '' , $str1 ) ;
    8. if( strcasecmp(mb_strtolower($str1),$str2) == 0)
    9. {
    10.    echo "Yeeeaa \n";
    11. }
    Почему то не работает. Помогите найти причину, возможно проблема с буквами. Потому что с другими предложениями все хорошо все находит, именно с этим не хочет
     
  2. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    152
    Симпатии:
    40
    Адрес:
    Барнаул
    Регулярное выражение удаляет все, кроме пробела цифр и букв. Из "Увы набор разобран( если надо могу собрать)" после preg_replace "Увы набор разобран если надо могу собрать". Дальше strcasecmp сравнивает две строки "набор разобран" и "Увы набор разобран если надо могу собрать" - они разные. strcasecmp не ищет в строке, а сравнивает строки.
     
  3. japan_parts

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

    С нами с:
    28 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    спасибо сменил на strripos
     
  4. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    152
    Симпатии:
    40
    Адрес:
    Барнаул
    Регистронезависимый поиск позиции первого вхождения одной строки в другую mb_stripos
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.321
    Адрес:
    Лень