HTML Diff
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 &lt;title&gt;hello php!&lt;/title&gt; content'; if (preg_match("!&lt;title&gt;(.*?)&lt;/title&gt;!si", $html, $matches)){ echo $matches[1]; } else { echo "Тег не был найден"; }<p>Остаётся добавить, что язык программирования PHP располагает богатейшим выбором<a>функций для работы с регулярными выражениями</a>. Это раз. Что касается нашей основной темы, то нельзя не сказать, что для работы со строками в PHP тоже есть огромное количество функций, знакомиться с которыми лучше в<a>официальной документации</a>.</p>
13 $html = 'content &lt;title&gt;hello php!&lt;/title&gt; content'; if (preg_match("!&lt;title&gt;(.*?)&lt;/title&gt;!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