Функция strpos() в PHP.


Функция strpos() осуществляет поиск заданной строки в другой строке. Возвращает позицию первого вхождения искомой строки, либо FALSE, если подстрока не найдена. При этом отсчет ведется с 0, то есть первый символ занимает нулевую позицию.

Общий синтаксис:

1
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Первый параметр $haystack – это строка, в которой осуществляется поиск. Второй параметр $needle – искомая подстрока. Третий параметр – необязательный и указывает позицию, с которой необходимо осуществлять поиск.

Обратите внимание, что данная функция может возвратить 0, если искомая подстрока находится на нулевой позиции, а это значит, что при проверке возвращаемого значения с помощью «$pos == FALSE» мы получим совсем не то, что нужно, то есть 0 будет преобразован в FALSE. Чтобы избежать ошибки, лучше использовать знак «===», где сравнение используется с учетом типа данных.

Рассмотрим пример:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$teststr = 'алгоритм';
$search   = 'a';
$pos = strpos($teststr, $search);
 
if ($pos === false) {
    echo "Строка '$search' не найдена в строке '$teststr'";
} else {
    echo "Строка '$search' найдена в строке '$teststr'";
    echo " в позиции $pos";
}
?>

В этом примере мы получим верное значение 0, так как использовали сравнение с учетом типа возвращаемого значения.

Пример 2.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$teststr = 'мама';
$search   = 'м';
$start = '1';
$pos = strpos($teststr, $search, $start);
 
if ($pos === false) {
    echo "Строка '$search' не найдена в строке '$teststr'";
} else {
    echo "Строка '$search' найдена в строке '$teststr'";
    echo " в позиции $pos";
}
?>

Здесь будет выведено 2, так как поиск ведется с 1 позиции (это второй символ в строке), а искомая подстрока (символ) занимает 0 и 2 позиции.

Название функции strpos() образовано от двух слов string (строка) и position (позиция).





Другие посты

Категория: PHP-скрипты

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