За последние 24 часа нас посетили 17020 программистов и 1652 робота. Сейчас ищут 977 программистов ...

Сравнить строки (слова)

Тема в разделе "PHP для новичков", создана пользователем boo, 3 авг 2009.

  1. boo

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

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    str1 = 'Текст';
    str2 = 'Гипертекст';

    какую функцию использовать, что бы результат был True т.к. первая строка содержит часть 2ой или наоборот?

    или False если
    str1 = 'Тееекст';
    str2 = 'Гипертекст';
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  3. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?
    2.  
    3. str1 = 'Текст';
    4. str2 = 'Гипертекст';
    5.  
    6. if(str_pos($str2, $str1) !== false || str_pos($str1, $str2) !== false) return true;
    7.  
    8. ?>
     
  4. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    stripos если регистр не имеет значения
     
  5. boo

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

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    Код (Text):
    1.  
    2.  $str1 = 'Текст';
    3.  $str2 = 'Гипертекст';
    4.  
    5.  if((stripos($str2, $str1) !== false) || (stripos($str1, $str2) !== false)){
    6.     echo 'TRUE';
    7.  } else {
    8.     echo 'FALSE';
    9.  }
    выдаёт FLASE, если делаю
    $str1 = текст'; - тогда TRUE

    что то не ясно с регистром...
     
  6. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    boo
     
  7. boo

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

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    так в том то и дело что не имеет. а выходит что имеет значние.


    простой пример, переделайт на руские буквы пример с пхп нет
    Код (Text):
    1.  
    2.  
    3. $findme    = 'а';
    4. $mystring1 = 'эюя';
    5. $mystring2 = 'АБВ';
    6.  
    7. $pos1 = stripos($mystring1, $findme);
    8. $pos2 = stripos($mystring2, $findme);
    9.  
    10. // Конечно, 'a' не входит в 'xyz'
    11. if ($pos1 === false)
    12. {
    13.     echo "Строка '$findme' не найдена в строке '$mystring1'";
    14. }
    15.  
    16. // Заметьте, что используется ===.  Использование == не даст верного  
    17. // результата, так как 'a' в нулевой позиции.
    18. if ($pos2 !== false)
    19. {
    20.     echo "Нашел '$findme' в '$mystring2' в позиции $pos2";
    21. }

    Строка 'а' не найдена в строке 'эюя'



    2ую не отображает, хотя с ABC xyz - отображает и работает
     
  8. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    mb_stripos ?
     
  9. boo

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

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    тоже самое

    Работает:
    Код (Text):
    1. $findme    = 'a';
    2. $mystring1 = 'xyz';
    3. $mystring2 = 'ABC';
    Не работает:
    Код (Text):
    1. $findme    = 'а';
    2. $mystring1 = 'эюя';
    3. $mystring2 = 'АБВ';
    Работает:
    Код (Text):
    1. $findme    = 'А';
    2. $mystring1 = 'эюя';
    3. $mystring2 = 'АБВ';
     
  10. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    mb_internal_encoding