ฟังก์ชัน strpos
strpos ฟังก์ชันส่งคืนตำแหน่ง
ของการพบสตริงย่อยครั้งแรกในสตริงอื่น
หรือ false หากไม่พบสตริงย่อย
พารามิเตอร์แรกของฟังก์ชันรับสตริง
ที่จะทำการค้นหา, พารามิเตอร์ที่สอง
- สตริงย่อยที่ต้องการค้นหา
โดยค่าเริ่มต้น ฟังก์ชันค้นหาจากต้นสตริง จนกว่าจะพบการตรงกันครั้งแรก จุดเริ่มต้นการค้นหาสามารถ ปรับได้ด้วยพารามิเตอร์ที่สามซึ่งเป็นตัวเลือก - หากกำหนดไว้ การค้นหาจะไม่เริ่มจากจุดเริ่มต้น ของสตริง แต่จากตำแหน่งที่ระบุ
นอกจากนี้ยังมีฟังก์ชัน stripos ซึ่ง
ทำหน้าที่เหมือนกัน แต่ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก
ไวยากรณ์
strpos(string $haystack, string $needle, int $offset = 0): int|false
ตัวอย่าง
ในตัวอย่างนี้ ฟังก์ชันจะส่งคืนตำแหน่งของตัวอักษรตัวแรก
'c' มันอยู่ที่ตำแหน่ง 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ฟังก์ชัน,
ซึ่งทำการค้นหาในอาร์เรย์