Поиск строк с помощью функций strpos / stripos: 4 примера

Функция PHP strpos используется для поиска подстроки в заданной строке. Она возвращает числовое значение первого вхождения заданной на поиск подстроки.

Синтаксис для использования strpos

PHP функция strpos используется следующим образом:

$position = strpos($given_string, $search_string);

Примечание: При поиске с помощью функции strpos регистр имеет значение. Так что поиск по ключевым словам “Test” и “test” даст различные результаты.

Отсчет позиции начинается с 0, а не 1.

На примере демо-версий я продемонстрирую использование этой функции для поиска заданной подстроки и вводимого пользователем значения.

Простой пример использования функции strpos

Посмотрите следующий пример, в котором я использовал заданные для поиска значения, чтобы продемонстрировать работу функции strpos PHP:

Простой пример использования функции strpos

Посмотреть онлайн демо-версию и код

Код PHP

<?php

$source_string = 'This is a strpos Tuotrial which is used to search strings. It tells whether a given string contains a search string or not!';

$search_term   = 'strpos';

$posistion = strpos($source_string, $search_term);

if ($posistion === false) {

echo "The source string does not contain the: '$search_term'!";

} else {

echo "The string contains the search term: '$search_term'! </BR>";

echo " The given substr found at: $posistion";

}

?>

strpos PHP пример

The string contains the search term: ‘strpos’!
The given substring found at: 10

Пример использования strpos для поиска вводимого пользователем термина

Этот метод может оказаться полезным в определенных сценариях. Например, когда в форму не разрешается вводить определенные слова.

Кроме этого можно проверить, содержится ли слово, заданное пользователем на поиск, в исходной строке. Исходя из этого, можно вывести определенные результаты в виде ответа.

В этой демо-версии, пользователь может ввести термин в текстовое поле. После нажатия кнопки запускается функция strpos, чтобы проверить, содержит ли исходная строка подстроку. На экран будет выводиться соответствующее сообщение:

Пример использования strpos для поиска вводимого пользователем термина

Для демо-версии я использовал следующую исходную строку:

$source_string = 'In this demo, I am using a user entered search term to check if string contains search term or not by using strpos!';

Попробуйте ввести разные буквы или слова для поиска, чтобы проверить вернет ли функция значение false. Кроме этого попробуйте ввести термины заглавными или маленькими буквами, чтобы увидеть разницу.

Для этого был использован следующий пример PHP strpos utf 8:

<?php

$search_term=$_POST["searchterm"];

$source_string = 'In this demo, I am using a user entered search term to check if string contains search term or not by using strpos!';

//   = 'strpos';

$posistion = strpos($source_string, $search_term);

if( $search_term ){

echo "<div class='result'>";

if ($posistion === false) {

echo "The source string does not contain the: '$search_term'!";

} else {

echo "The string contains the search term: '$search_term'! </BR>";

echo " The given substring found at: $posistion";

}

echo "</div>";

}

?>

Также можете посмотреть разметку strpos PHP примера:

<!doctype html>

<html>

<head>

<style>

.result {

background: #5BB75B;

height: auto;

width:220px;

border-radius: 15px;

padding:20px;

font-size:20px;

color:#000;

}

.searchterm{

background: #6A0432;

width:220px;

border-radius: 15px;

padding:20px;

font-size:18px;

color:#fff;

}

</style>

<div class="searchterm">

<form method="post" action="">

<label>Enter a string:</label><input type="text" name="searchterm">

<input type="submit"/>

</form>

</div>

</body>

</html>

Полную версию можно увидеть в исходном коде страницы демо-версии.

Кроме этого вы можете использовать в качестве источника базу данных для создания системы поиска на своем сайте.

Поиск без учета регистра с помощью функции stripos

Как уже упоминалось, функция PHP strpos чувствительна к регистру. Для поиска строк независимо от регистра используйте функцию PHP stripos.

Синтаксис почти такой же, как для strpos:

$position = stripos($given_string, $search_string);

Теперь я покажу, как работает stripos.

Пример использования функции stripos

В этой демо-версии источником для поиска является следующая строка:

$source_string = 'This is a stripos Tutorial which is used to search strings. It tells whether a given string contains a search string or not!';

Искомый термин: $search_term = ‘tutorial';

Несмотря на то, что в исходной строке используется заглавная буква, посмотрите, какой будет результат:

Посмотреть онлайн демо-версию и код

Пример с вводимым пользователем поисковым термином

Этот пример аналогичен тому, который использовался для strpos. Но теперь мы применяем функцию stripos. Попробуйте ввести буквы и слова в различных регистрах и посмотрите, что получится:

Посмотреть онлайн демо-версию и код

По сравнению с приведенным выше примером использования функции strpos PHP изменена только следующая строка кода:

$posistion = stripos($source_string, $search_term);

Вадим Дворниковавтор-переводчик статьи «Search strings by PHP strpos / stripos functions | 4 demos»