PHP:
การค้นหาและแทนที่ข้อความ
วิธีการ:
นี่คือวิธีง่ายๆในการแทนที่ ‘cat’ ด้วย ‘dog’ ในประโยคโดยใช้ PHP:
<?php
$text = 'The quick brown fox jumps over the lazy cat';
$replacedText = str_replace('cat', 'dog', $text);
echo $replacedText;
?>
ผลลัพธ์ตัวอย่าง:
The quick brown fox jumps over the lazy dog
ตอนนี้, สมมติว่าเรากำลังจัดการกับการแทนที่ที่ไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก:
<?php
$text = 'Catapults are CATegorically amazing!';
$replacedText = str_ireplace('cat', 'dog', $text);
echo $replacedText;
?>
ผลลัพธ์ตัวอย่าง:
Dogapults are DOGegorically amazing!
ดำดิ่งลึกลงไป:
ฟังก์ชันค้นหาและแทนที่มีมาตั้งแต่ช่วงต้นของการคอมพิวเตอร์ — นึกถึง sed
ใน Unix ใน PHP, str_replace
และ str_ireplace
เป็นตัวเลือกหลักสำหรับการค้นหาและแทนที่แบบง่าย str_replace
นั้นคำนึงถึงตัวพิมพ์ใหญ่เล็ก ในขณะที่ str_ireplace
ไม่เป็นเช่นนั้น
ทำงานอย่างไร? โดยรวมแล้ว, ทั้งสองฟังก์ชันตรวจสอบแต่ละส่วนของสตริง, ค้นหาการจับคู่ และทำการแทนที่ พวกเขาจัดการกับอาเรย์ด้วย, ดังนั้นคุณสามารถค้นหาและแทนที่แพทเทิร์นหลายๆอย่างในครั้งเดียว
ตอนนี้, ถ้าคุณต้องการควบคุมมากขึ้น, เช่น การจับคู่แพทเทิร์น, คุณจะต้องการใช้ preg_replace
ซึ่งใช้ regular expressions, นำเสนอความยืดหยุ่นและความแม่นยำมากขึ้น:
<?php
$text = 'The quick brown fox jumps over the lazy cat 7 times.';
$replacedText = preg_replace('/\bcat\b/i', 'dog', $text);
echo $replacedText;
?>
ผลลัพธ์ตัวอย่าง:
The quick brown fox jumps over the lazy dog 7 times.
การแทนที่นี้เปลี่ยน ‘cat’ ด้วย ‘dog’, ละเว้นตัวพิมพ์ใหญ่เล็ก (/i
ตัวแก้ไข), และจับคำทั้งหมดเท่านั้น (\b
ขอบเขตของคำ).
ดูเพิ่มเติมที่:
- เอกสารอย่างเป็นทางการของ PHP เกี่ยวกับ str_replace: https://www.php.net/manual/en/function.str-replace.php
- เอกสารอย่างเป็นทางการของ PHP เกี่ยวกับ str_ireplace: https://www.php.net/manual/en/function.str-ireplace.php
- เอกสารอย่างเป็นทางการของ PHP เกี่ยวกับ preg_replace: https://www.php.net/manual/en/function.preg-replace.php
- บทเรียนเกี่ยวกับ Regular Expressions: https://www.regular-expressions.info/
- ตัวแก้ไขสตรีม
sed
ของ Unix เพื่อกรองและเปลี่ยนแปลงข้อความ: http://www.grymoire.com/Unix/Sed.html