0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: php, поиск, строка, подстрока, найти</p>
1
<p>Теги: php, поиск, строка, подстрока, найти</p>
2
<p>В некоторых случаях возникает необходимость найти подстроку в строке, используя встроенные возможности языка программирования PHP. Чтобы решить эту задачу, можно использовать разные инструменты.</p>
2
<p>В некоторых случаях возникает необходимость найти подстроку в строке, используя встроенные возможности языка программирования PHP. Чтобы решить эту задачу, можно использовать разные инструменты.</p>
3
<h2>Поиск подстроки в строке с помощью strpos</h2>
3
<h2>Поиск подстроки в строке с помощью strpos</h2>
4
<p>В PHP есть функция под названием strpos, возвращающая позицию 1-го вхождения символа подстроки. Давайте рассмотрим небольшой пример её работы:</p>
4
<p>В PHP есть функция под названием strpos, возвращающая позицию 1-го вхождения символа подстроки. Давайте рассмотрим небольшой пример её работы:</p>
5
$mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); // Обратите внимание, что применяется ===. Применение == не даст нам верного // результата, т. к. 'a' находится в нулевой позиции. if ($pos === false) { echo "Строка '$findme' не найдена в строке '$mystring'"; } else { echo "Строка '$findme' найдена в строке '$mystring'"; echo " в позиции $pos"; }<p>Таким образом,<strong>PHP-функция</strong>возвращает нам или порядковый номер 1-го символа подстроки в исходной строке, или false, если ничего не найдено.</p>
5
$mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); // Обратите внимание, что применяется ===. Применение == не даст нам верного // результата, т. к. 'a' находится в нулевой позиции. if ($pos === false) { echo "Строка '$findme' не найдена в строке '$mystring'"; } else { echo "Строка '$findme' найдена в строке '$mystring'"; echo " в позиции $pos"; }<p>Таким образом,<strong>PHP-функция</strong>возвращает нам или порядковый номер 1-го символа подстроки в исходной строке, или false, если ничего не найдено.</p>
6
<p>Применяя эту функцию, учтите, что она может вернуть вам в качестве результата 0 - в таком случае можно говорить, что подстрока находится в самом начале нашей исходной строки. Именно поэтому следует применять троекратный знак равно, о котором упомянуто в коде ($pos === false). Это нужно для проверки успешности поиска.</p>
6
<p>Применяя эту функцию, учтите, что она может вернуть вам в качестве результата 0 - в таком случае можно говорить, что подстрока находится в самом начале нашей исходной строки. Именно поэтому следует применять троекратный знак равно, о котором упомянуто в коде ($pos === false). Это нужно для проверки успешности поиска.</p>
7
<h2>Поиск подстроки в строке с помощью stripos</h2>
7
<h2>Поиск подстроки в строке с помощью stripos</h2>
8
<p>Эта функция является регистронезависимым аналогом strpos. Она пригодится, если захотите найти последнее вхождение подстроки. Кстати, регистронезависимый вариант есть и у неё - strripos.</p>
8
<p>Эта функция является регистронезависимым аналогом strpos. Она пригодится, если захотите найти последнее вхождение подстроки. Кстати, регистронезависимый вариант есть и у неё - strripos.</p>
9
<h2>Используем для поиска PHP-функцию preg_match</h2>
9
<h2>Используем для поиска PHP-функцию preg_match</h2>
10
<p>Данная функция позволит выполнить поиск подстроки, задействуя регулярное выражение. Напомним, что<a>регулярное выражение</a>представляет собой шаблон, сравниваемый со строкой. При этом под один шаблон порой подходят сразу много разных строк.</p>
10
<p>Данная функция позволит выполнить поиск подстроки, задействуя регулярное выражение. Напомним, что<a>регулярное выражение</a>представляет собой шаблон, сравниваемый со строкой. При этом под один шаблон порой подходят сразу много разных строк.</p>
11
<p>Регулярные выражения пригодятся, если надо выполнять поиск и проверку не по конкретной подстроке, а требуется обнаружить все строки, которые обладают свойствами, описанными посредством регулярных выражений. Вообще, по правде говоря, знание данной темы заметно расширит ваши возможности и облегчит работу со строками.</p>
11
<p>Регулярные выражения пригодятся, если надо выполнять поиск и проверку не по конкретной подстроке, а требуется обнаружить все строки, которые обладают свойствами, описанными посредством регулярных выражений. Вообще, по правде говоря, знание данной темы заметно расширит ваши возможности и облегчит работу со строками.</p>
12
<p>Выполним проверку:</p>
12
<p>Выполним проверку:</p>
13
$html = 'content <title>hello php!</title> content'; if (preg_match("!<title>(.*?)</title>!si", $html, $matches)){ echo $matches[1]; } else { echo "Тег не был найден"; }<p>Остаётся добавить, что язык программирования PHP располагает богатейшим выбором<a>функций для работы с регулярными выражениями</a>. Это раз. Что касается нашей основной темы, то нельзя не сказать, что для работы со строками в PHP тоже есть огромное количество функций, знакомиться с которыми лучше в<a>официальной документации</a>.</p>
13
$html = 'content <title>hello php!</title> content'; if (preg_match("!<title>(.*?)</title>!si", $html, $matches)){ echo $matches[1]; } else { echo "Тег не был найден"; }<p>Остаётся добавить, что язык программирования PHP располагает богатейшим выбором<a>функций для работы с регулярными выражениями</a>. Это раз. Что касается нашей основной темы, то нельзя не сказать, что для работы со строками в PHP тоже есть огромное количество функций, знакомиться с которыми лучше в<a>официальной документации</a>.</p>
14
<p><em>Если же хотите<a>прокачать свои навыки PHP-разработки</a>под руководством практикующих экспертов, добро пожаловать на специальный курс в OTUS!</em></p>
14
<p><em>Если же хотите<a>прокачать свои навыки PHP-разработки</a>под руководством практикующих экспертов, добро пожаловать на специальный курс в OTUS!</em></p>
15
15