3 วิธีในการตรวจสอบว่าสตริง PHP มี Another . หรือไม่

เผยแพร่แล้ว: 2022-02-13

อาจเป็นส่วนที่น่าผิดหวังที่สุดในการเขียนโค้ด PHP เพื่อดูว่าสตริง PHP มีสตริงอื่นหรือไม่ แต่ไม่ต้องกังวลไป ในบทช่วยสอนนี้ เราจะแสดงให้เห็นว่าการระบุสตริงย่อยนั้นง่ายเพียงใดโดยใช้หลายวิธี นอกจากการจัดแสดงแล้ว เรายังจะพูดถึงข้อดีและข้อเสียของพวกเขาด้วย โปรดทราบว่ามี 'การรูท' สตริงย่อยมากกว่าหนึ่งวิธี




สารบัญ

ข้อควรพิจารณาสองสามข้อหาก PHP String มี Another

ข้อผิดพลาดหลักประการแรกในการทดสอบสตริงย่อยคือการใช้ตัวดำเนินการเปรียบเทียบที่ไม่ถูกต้อง ตัวอย่างเช่น หากคุณใช้ != เพื่อตรวจสอบสตริงย่อย คุณอาจลงเอยด้วยสิ่งที่เรียกว่าผลบวกลวง ในกรณีนี้ ควรใช้ !== ซึ่งเปรียบเทียบประเภทดังกล่าวจะดีกว่า

หากคุณประสบปัญหาในการค้นหาว่าตัวดำเนินการใดที่จะใช้ในบริบทใดบริบทหนึ่ง คุณสามารถดูบทแนะนำ PHP นี้สำหรับข้อมูลโดยละเอียดเกี่ยวกับตัวดำเนินการและฟังก์ชันของตัวดำเนินการ คุณยังจะพบตัวอย่างโค้ดที่อธิบายสำหรับโปรแกรมเมอร์มือใหม่อีกด้วย

ดังที่เราได้กล่าวไปแล้ว มีหลายวิธีในการค้นหาว่าสตริงมีคำหรือสตริงอื่นหรือไม่ จนถึงปัจจุบันมีห้าวิธี แต่มีเพียงสามวิธีแรกเท่านั้นที่ทำได้รวดเร็ว

  1. stripos () สำหรับตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เพื่อตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่
  2. Regex สำหรับสตริงในสตริง
  3. strstr () สำหรับสตริงในสตริงอื่น

1. การตรวจสอบสตริงย่อยโดยใช้แถบอ้างอิงสตริงที่คำนึงถึงขนาดตัวพิมพ์ ()

วิธีที่รวดเร็วที่สุดและไม่ยุ่งยากในการตรวจสอบว่าสตริงมีอีกอันหนึ่งหรือไม่คือการใช้ฟังก์ชัน stripos() ซึ่งโดยทั่วไปจะค้นหาว่าสตริงมีคำเฉพาะหรือไม่ สิ่งที่เกิดขึ้นคือฟังก์ชันจะคืนค่า TRUE หากสตริงมีสตริงย่อย/คำ หรือ FALSE หากสตริงนั้นไม่มีทั้งสองรายการ




เพื่อช่วยให้คุณเห็นภาพว่า stripos() ทำงานอย่างไร ต่อไปนี้คือตัวอย่าง

$first_string = “ฉันแก่กว่าคุณ 10 ปี”

$sought_word= “ปี”

$character = “ฉัน”




$targeted_substring = “10 ปี”

ถ้า (strpos ($first_String, $sought_word) !== false {

echo 'คำนี้ “ '.$sought_word.'” อยู่ในสตริง.';

}

(นี่จะบอกคุณว่าโลก "ปี" สามารถพบได้ในสตริงนี้โดยเฉพาะ)




if (stripos ($first_string, $character) !== false) {

echo 'อักขระนี้ " '.$character.' “สามารถพบได้ในสตริงนี้โดยเฉพาะ';

}

(บรรทัดเหล่านี้จะบอกคุณว่า "ฉัน" อยู่ในสตริงที่กำหนด)

if (strpos ($first_string, $targeted substring) !== false {




echo 'สตริงย่อยที่เป็นเป้าหมาย “ '.targeted_substring.'” สามารถพบได้ในสตริงนี้”

(บรรทัดเหล่านี้จะบอกคุณว่าสตริงย่อย "5 ปี" สามารถพบได้ในสตริง)

if (strpos($first_string, $character) != false) {

echo 'อักขระนี้ " '.$character.' “ปรากฏในสายนี้”

} อื่น {

echo 'อักขระนี้ " '.$character.' “ ไม่ปรากฏในสตริงนี้

(บรรทัดเหล่านี้จะบอกคุณว่าไม่พบอักขระ "I" ในสตริงนั้น)

  • ที่เกี่ยวข้อง: 5 หลักสูตรการพัฒนาเว็บออนไลน์ฟรีที่ดีที่สุด
  • 5 ที่ที่ดีที่สุดในการเรียนรู้การออกแบบเว็บ

2.Regex สำหรับสตริงย่อยในสตริง

นิพจน์ทั่วไปหรือที่รู้จักว่า Regex เหมาะสมกว่าสำหรับการค้นหารูปแบบที่ซับซ้อนภายในสตริงย่อยที่กำหนด

ต่อไปนี้คือตัวอย่างวิธีค้นหาสตริงย่อยโดยใช้ฟังก์ชันที่กำหนดไว้ในตัวอย่างก่อนหน้า

$first_string = “ฉันแก่กว่าคุณ 10 ปี”

$sought_word= “ปี”

$character = “ฉัน”

$targeted_substring = “10 ปี”

ถ้า (preg_match('/years/', $first_string)) {

echo 'คำว่า “ '.$sought_word.' “สามารถพบได้ในสตริงนี้.';

}

(บอกผู้ใช้ว่าคำว่า "ปี" อยู่ในสตริงนั้น)

if (preg_match('/I/', $first_string)) {

echo 'อักขระ "'.$ character.; “ปรากฏในสตริงนี้. ;

}

(บอกคุณว่า “ฉัน” ปรากฏในสตริงของคุณ)

ถ้า (preg_match('/10 ปี/', $first_string)) {

echo 'สตริงย่อยนี้: '.$targeted_substring.' “แสดงในสตริงที่ให้มา'

}

(บอกคุณว่าสตริงย่อยที่กำหนดเป็น "10 ปี" ปรากฏในสตริงที่คุณประกาศ)

3. Strstr() ทำหน้าที่ค้นหาสตริงย่อยในสตริง

ฟังก์ชัน strstr () ใช้งานได้หลากหลาย หมายความว่าสามารถใช้เพื่อค้นหาสตริงย่อย อักขระ และคำภายในสตริงเฉพาะ โดยทั่วไปแล้วสิ่งที่ทำคือการส่งคืนเฉพาะส่วนที่มีสตริงแรก ตั้งแต่สตริงย่อย/คำที่เกิดขึ้นครั้งแรกไปจนถึงจุดสิ้นสุด ต่อไปนี้คือตัวอย่างที่จะช่วยให้คุณทราบวิธีการทำงานของฟังก์ชัน

ทำงาน

$first_string = “ฉันแก่กว่าคุณ 10 ปี”

$sought_word= “ปี”

$character = “ฉัน”

$targeted_substring = “10 ปี”

ถ้า (strstr($first_string, $sought_word) !==false) {

echo 'คำว่า “ '.$sought_word.'” แสดงในสตริง

}

(บอกคุณว่า "ปี" ปรากฏขึ้นในสตริง)

if (strstr($first_string, $character) !==false) {

echo 'The character” '$character.'” จะแสดงขึ้นในสตริงที่กำหนด';

}

(บอกผู้ใช้ว่าอักขระ "I" ปรากฏในสตริง)

ถ้า (strstr($first_string, $targeted_substring) !==false) {

echo 'สตริงย่อย “'.$targeted_substring.; “ ปรากฏขึ้นในสตริง.';

}

บทสรุป

พวกคุณทำได้อยู่แล้ว – สามวิธีง่ายๆ ในการค้นหาว่าสตริงที่คุณกำลังทดสอบมีสตริงย่อยหรือไม่ อีกครั้ง ระวังตัวดำเนินการ และอย่าลืมทดสอบสตริงของคุณโดยใช้มากกว่าหนึ่งวิธีเพื่อหลีกเลี่ยงผลลัพธ์ที่เป็นเท็จ

หากคุณต้องการเรียนรู้ PHP หรือภาษาใด ๆ ฉันขอแนะนำให้เรียนหลักสูตรออนไลน์จากแพลตฟอร์มการเรียนรู้ออนไลน์ชั้นนำอย่าง Udemy ซึ่งให้หลักสูตรประเภทใดก็ได้ในราคาที่ถูกกว่ามาก คุณสามารถอ่านรายละเอียดทั้งหมดเกี่ยวกับ Udemy คุณยังสามารถตรวจสอบหน้าคูปองส่วนลด Udemy ของเราสำหรับข้อเสนอล่าสุด

หากคุณชอบบทแนะนำเกี่ยวกับวิธีการตรวจสอบ สตริง PHP มีสตริง อื่น โปรดแชร์ ต้องการคำแนะนำเพิ่มเติม โปรดติดตาม whatvwant บน Facebook, Twitter และ YouTube