Функция strpos
Функцията strpos връща позицията
на първото възникване на подниз в друг низ
или false, ако поднизът не бъде намерен.
Първият параметър функцията приема низ,
в който се извършва търсене, вторият параметър
- подниза, който трябва да се търси.
По подразбиране функцията търси от началото на низа до първото съвпадение. Началото на търсенето може да се регулира с трети незадължителен параметър - ако е зададен, търсенето ще започне не от началото на низа, а от указаното място.
Съществува и функция stripos, която
прави същото, но без отчитане на регистъра.
Синтаксис
strpos(string $haystack, string $needle, int $offset = 0): int|false
Пример
В този пример функцията ще върне позицията на първия
символ 'с'. Той заема позиция 2,
тъй като отброяването започва от 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Резултат от изпълнението на кода:
2
Пример
В този пример е зададен трети параметър и
затова търсенето ще започне от третата позиция,
в този случай функцията ще намери втория символ
'c' и ще изведе неговата позиция - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Резултат от изпълнението на кода:
8
Пример
Ако поднизът не бъде намерен - функцията
ще върне false. Ако низът се намира
в началото, то функцията ще върне 0.
Това може да бъде проблем при сравнение
чрез кратка форма на условие:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Резултат от изпълнението на кода (не такъв, какъвто очаквахме):
'---'
Пример
Нека извършим правилна проверка за начало на низ:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Резултат от изпълнението на кода:
'+++'
Вижте също
-
функцията
strrpos,
която връща позицията на последното възникване на подниз -
функцията
str_contains,
която проверява възникването на символ в низ -
функцията
str_starts_with,
която проверява началото на низ -
функцията
str_ends_with,
която проверява края на низ -
функцията
array_search,
която извършва търсене в масив