Fungsi strpos() Pada PHP
strpos()
adalah fungsi PHP yang berfungsi untuk
menemukan posisi (indeks) dari kemunculan pertama sebuah
substring di dalam sebuah string. Jika substring
ditemukan, fungsi ini akan mengembalikan indeksnya (dengan
nilai awal indeks adalah 0). Jika substring tidak ditemukan,
fungsi ini akan mengembalikan false
.
Sintaks Dasar
strpos(
string $haystack,
string $needle,
int $offset = 0
): int|false
- $haystack: String sumber tempat pencarian.
- $needle: Substring atau teks yang ingin ditemukan.
- $offset (opsional): Posisi awal pencarian di dalam
$haystack
. Jika nilainya positif, pencarian akan dimulai setelah posisi$offset
tersebut. Jika bernilai negatif, perilakunya akan sedikit berbeda tergantung versi PHP, tetapi umumnya perhitungan tetap dilakukan dari depan namun diimbangi dengan panjang string.
Nilai kembalian berupa int
atau
false
: integer untuk posisi kemunculan
pertama $needle
jika berhasil, false
jika tidak ditemukan.
strpos()
bisa
mengembalikan 0
(posisi awal string), kita
harus menggunakan ===
atau !==
untuk
membedakan antara nilai integer 0 dan false
.
Contoh Penggunaan
1. Mencari Indeks Teks di dalam String
Pada contoh di atas, "Halo Dunia" memiliki panjang 9 karakter
(indeks 0 sampai 8). Kata "Dunia" dimulai di indeks 5.
Maka strpos()
mengembalikan nilai 5.
2. Menggunakan ===
untuk Validasi Tepat
Sangat penting untuk membedakan 0
dengan
false
. Misalnya jika substring berada di indeks 0,
strpos()
akan mengembalikan 0, bukan false
.
Lihat contoh berikut:
Jika kita menggunakan if ($pos == false)
(dengan
perbandingan ganda =
), hasilnya akan salah,
karena 0 == false
bernilai true
di PHP.
Oleh sebab itu, gunakan ===
.
3. Penerapan Parameter $offset
Parameter $offset
berguna ketika kita ingin memulai
pencarian tidak dari indeks 0. Misalnya, kita sudah menemukan
satu kemunculan substring, lalu ingin mencari kemunculan berikutnya.
";
if ($nextPos !== false) {
echo "Posisi kedua: " . $nextPos;
} else {
echo "Tidak ada kemunculan kedua.";
}
} else {
echo "Kata 'pisang' tidak ditemukan sama sekali.";
}
?>
Pada contoh di atas, kita mencari kata "pisang" pertama kali,
lalu menggunakan parameter $offset
agar pencarian
kedua dimulai setelah posisi pertama ditambah 1.
4. Perbandingan dengan stripos()
(Case-Insensitive)
strpos()
bersifat case-sensitive, artinya
membedakan huruf besar dan kecil. Jika ingin mengabaikan perbedaan
huruf besar/kecil, gunakan stripos()
. Lihat contoh:
Pada contoh tersebut, strpos()
gagal menemukan
"world" karena dalam $text
tertulis "World"
dengan huruf kapital W
. Namun, stripos()
berhasil menemukannya di indeks 6.
5. Mencari Pola Tertentu dan Memvalidasi URL atau Email
Salah satu kegunaan strpos()
ialah memeriksa apakah
suatu string mengandung substring tertentu. Misalnya, memvalidasi
apakah sebuah alamat email memiliki "@"
di dalamnya.
Contoh lain, jika kita ingin tahu apakah suatu URL mengandung
"https://"
di depannya.
Di sini, kita mengecek apakah substring "https://"
muncul di indeks 0.
Tips dan Best Practice
- Gunakan
===
atau!==
untuk memeriksa hasil. Karenastrpos()
bisa mengembalikan0
jika substring ditemukan di awal string. Menggunakan==
atau!=
dapat menimbulkan kesalahan. - Pahami perbedaan
strpos()
danstripos()
. Pilihstripos()
jika Anda tidak ingin membedakan huruf besar-kecil. - Manfaatkan parameter
$offset
jika Anda perlu mencari kemunculan substring berikutnya. Ini berguna saat ingin memproses satu string berulang-ulang. - Gunakan fungsi lain jika butuh pola kompleks.
Jika Anda perlu mencari pola yang lebih rumit, gunakan
fungsi
preg_match()
atau metode regular expression lainnya.
Kesimpulan
Fungsi strpos()
dalam PHP adalah alat sederhana namun
sangat bermanfaat untuk menemukan posisi awal sebuah substring.
Pemahaman mendalam tentang perilaku pengembalian nilai
(0
atau false
) sangat krusial agar
hasil pengecekan akurat. Selain itu, dukungan parameter
$offset
memberikan fleksibilitas untuk mencari
kemunculan substring selanjutnya. Jika perlu pencarian yang
tidak membedakan huruf besar-kecil, gunakan stripos()
.
Dengan memanfaatkan strpos()
secara tepat,
pemrosesan string akan menjadi lebih mudah dan terstruktur.
Baca Juga :