Funktsioon strpos
Funktsioon strpos tagastab alamstringi esimese esinemise asukoha
teises stringis
või false, kui alamstringi ei leita.
Esimene parameeter on string,
milles otsing tehakse, teine parameeter
- otsitav alamstring.
Vaikimisi otsib funktsioon stringi algusest kuni esimese vaste leidmiseni. Otsingu alguspunkti saab reguleerida kolmanda valikulise parameetriga - kui see on määratud, siis otsing algab mitte stringi algusest, vaid määratud kohast.
Samuti on olemas funktsioon stripos, mis
teeb sama asja, kuid ilma suurtähetundlikkuseta.
Süntaks
strpos(string $haystack, string $needle, int $offset = 0): int|false
Näide
Selles näites tagastab funktsioon esimese
sümboli 'c' asukoha. See asub positsioonil 2,
kuna loendamine algab 0-st:
<?php
echo strpos('abcde abcde', 'c');
?>
Koodi täitmise tulemus:
2
Näide
Selles näites on määratud kolmas parameeter ja
seetõttu algab otsing kolmandast positsioonist.
Sel juhul leiab funktsioon teise sümboli
'c' ja väljastab selle asukoha - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Koodi täitmise tulemus:
8
Näide
Kui alamstringi ei leita, tagastab funktsioon
false. Kui string asub
alguses, tagastab funktsioon 0.
See võib olla probleemiks tingimuse
lühivormiga võrdlemisel:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Koodi täitmise tulemus (pole selline, nagu ootasime):
'---'
Näide
Teeme stringi alguse õige kontrolli:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Koodi täitmise tulemus:
'+++'
Vaata ka
-
funktsiooni
strrpos,
mis tagastab alamstringi viimase esinemise asukoha -
funktsiooni
str_contains,
mis kontrollib sümboli esinemist stringis -
funktsiooni
str_starts_with,
mis kontrollib stringi algust -
funktsiooni
str_ends_with,
mis kontrollib stringi lõppu -
funktsiooni
array_search,
mis teostab otsingu massiivist