Funkcija strpos
Funkcija strpos atgriež pirmās atrodamās apakšvirknes pozīciju
citā virknē
vai false, ja apakšvirkne netiek atrasta.
Pirmo parametru funkcija pieņem virkni,
kurā tiek veikta meklēšana, otro parametru
- apakšvirkni, kuru meklēt.
Pēc noklusējuma funkcija meklē no virknes sākuma līdz pirmajam atradumam. Meklēšanas sākumu var regulēt ar trešo neobligāto parametru - ja tas ir norādīts, tad meklēšana sāksies ne no sākuma, bet no norādītās vietas.
Ir arī funkcija stripos, kas
dara to pašu, bet neņemot vērā reģistru.
Sintakse
strpos(string $haystack, string $needle, int $offset = 0): int|false
Piemērs
Šajā piemērā funkcija atgriezīs pirmā
simbola 'c' pozīciju. Tas atrodas pozīcijā 2,
jo skaitīšana sākas ar 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Koda izpildes rezultāts:
2
Piemērs
Šajā piemērā ir norādīts trešais parametrs, tāpēc
meklēšana sāksies no trešās pozīcijas.
Šajā gadījumā funkcija atradīs jau otro simbolu
'c' un izvadīs tā pozīciju - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Koda izpildes rezultāts:
8
Piemērs
Ja apakšvirkne netiks atrasta - funkcija
atgriezīs false. Ja virkne atrodas
sākumā, tad funkcija atgriezīs 0.
Tas var radīt problēmas, salīdzinot
izmantojot īso nosacījuma formu:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Koda izpildes rezultāts (ne tāds, kādu mēs gaidījām):
'---'
Piemērs
Veiksim pareizu virknes sākuma pārbaudi:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Koda izpildes rezultāts:
'+++'
Skatiet arī
-
funkciju
strrpos,
kas atgriež pēdējās atrodamās apakšvirknes pozīciju -
funkciju
str_contains,
kas pārbauda simbola ietilpšanu virknē -
funkciju
str_starts_with,
kas pārbauda virknes sākumu -
funkciju
str_ends_with,
kas pārbauda virknes beigas -
funkciju
array_search,
kas veic meklēšanu masīvā