ฟังก์ชัน strpos

strpos ฟังก์ชันส่งคืนตำแหน่ง ของการพบสตริงย่อยครั้งแรกในสตริงอื่น หรือ false หากไม่พบสตริงย่อย พารามิเตอร์แรกของฟังก์ชันรับสตริง ที่จะทำการค้นหา, พารามิเตอร์ที่สอง - สตริงย่อยที่ต้องการค้นหา

โดยค่าเริ่มต้น ฟังก์ชันค้นหาจากต้นสตริง จนกว่าจะพบการตรงกันครั้งแรก จุดเริ่มต้นการค้นหาสามารถ ปรับได้ด้วยพารามิเตอร์ที่สามซึ่งเป็นตัวเลือก - หากกำหนดไว้ การค้นหาจะไม่เริ่มจากจุดเริ่มต้น ของสตริง แต่จากตำแหน่งที่ระบุ

นอกจากนี้ยังมีฟังก์ชัน stripos ซึ่ง ทำหน้าที่เหมือนกัน แต่ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก

ไวยากรณ์

phpstrpos(string $haystack, string $needle, int $offset = 0): int|false

ตัวอย่าง

ในตัวอย่างนี้ ฟังก์ชันจะส่งคืนตำแหน่งของตัวอักษรตัวแรก 'c' มันอยู่ที่ตำแหน่ง 2, เนื่องจากนับเริ่มจาก 0:

php<?php
  echo strpos('abcde abcde', 'c');
?>

ผลลัพธ์ของการรันโค้ด:

php2

ตัวอย่าง

ในตัวอย่างนี้มีการกำหนดพารามิเตอร์ที่สามและ ดังนั้นการค้นหาจะเริ่มจากตำแหน่งที่สาม, ในกรณีนี้ฟังก์ชันจะพบตัวอักษรตัวที่สอง 'c' และแสดงตำแหน่งของมัน - 8:

php<?php
  echo strpos('abcde abcde', 'c', 3);
?>

ผลลัพธ์ของการรันโค้ด:

php8

ตัวอย่าง

หากไม่พบสตริงย่อย - ฟังก์ชัน จะส่งคืน false หากสตริงอยู่ ที่จุดเริ่มต้น ฟังก์ชันจะส่งคืน 0 นี่อาจเป็นปัญหาหากทำการเปรียบเทียบ ผ่านเงื่อนไขแบบย่อ:

php<?php
  if (strpos('http://site.ru', 'http://')) {
    echo '+++';
  } else {
    echo '---';
  }
?>

ผลลัพธ์ของการรันโค้ด (ไม่เหมือน ที่เราคาดหวัง):

php'---'

ตัวอย่าง

มาทำการตรวจสอบจุดเริ่มต้นของสตริงอย่างถูกต้อง:

php<?php
  if (strpos('http://site.ru', 'http://') === 0) {
    echo '+++';
  } else {
    echo '---';
  }
?>

ผลลัพธ์ของการรันโค้ด:

php'+++'

ดูเพิ่มเติม

  • strrpos ฟังก์ชัน,
    ซึ่งส่งคืนตำแหน่งของการพบสตริงย่อยครั้งสุดท้าย
  • str_contains ฟังก์ชัน,
    ซึ่งตรวจสอบการมีอยู่ของตัวอักษรในสตริง
  • str_starts_with ฟังก์ชัน,
    ซึ่งตรวจสอบจุดเริ่มต้นของสตริง
  • str_ends_with ฟังก์ชัน,
    ซึ่งตรวจสอบจุดสิ้นสุดของสตริง
  • array_search ฟังก์ชัน,
    ซึ่งทำการค้นหาในอาร์เรย์