Поиск подстроки в строке

Опубликовано 2012.02.17 в разделе Php

Очень часто есть необходимость проверить наличие одной строки в другой.Для этих целей можно использовать регулярные выражения(или воспользоваться конструктором регулярных выражений), но если у вас с ними туго-воспользуйтесь простой php функцией strpos. Эта функция найдет искомую подстроку в строке и даже вернет её позицию. Рассмотрим на примере использование этой функции,это совсем просто.
  1. $main_str='Это строка, в которой необходимо найти подстроку.';
  2.  
  3. //искомый текст
  4. $my_str='найти';
  5.  
  6. $pos = strpos($main_str, $my_str);
  7. if ($pos === false) {
  8. echo 'Подстрока не найдена';
  9. }else{
  10. echo 'Подстрока найдена в позиции: '.$pos;
  11. }
Очень удобно использовать эту функцию для проверки правильности URL. Например вы делаете сервис,в котором клиент должен указать адрес своей странички во вконтакте. Тогда проверка будет такой:
  1. $main_str='http://vk.com';
  2.  
  3. $my_str='то что ввёл пользователь';
  4.  
  5. $pos = strpos($main_str, $my_str);
  6. if ($pos === false) {
  7. echo 'Некорректно указан адрес страницы';
  8. }else{
  9. echo 'Всё верно,ваша ссылка принята';
  10. }

2 Комментариев

Оставить комментарий

  1. Гость 2013/02/18

    если совпадение на нулевой позиции strpos вернет как 0

    лучше использовать stristr, она вдобавок еще и регистронезависимая чем у вас написано

    Ответить

    1. Админ 2013/02/19

      Да, насчёт регистрозависимости всё верно.
      Я сейчас проверил этот код с вхождение по первому символу.Позиция будет равна нулю, но условие сработает верно, из-за проверки на соответствие значения и типа (===). С двойным равенством действительно была бы ошибка.

      Ответить

Ваш комментарий успешно создан

Ваш комментарий

  • Для выделения кода оберните его в тэги <code> и </code>
  • Отметьте доллар