การแทนที่ข้อความด้วย preg_replace
แทนที่ส่วนที่ตรงกันด้วยสตริงทดแทนและการอ้างอิงย้อนกลับ
การแทนที่ข้อความด้วย preg_replace เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
ลายเซ็นของ preg_replace()
preg_replace($pattern, $replacement, $subject) คืนค่าสตริงต้นฉบับที่แทนที่การจับคู่ทั้งหมดแล้ว ส่งอาร์เรย์ของสตริงต้นฉบับเพื่อประมวลผลหลายสตริงพร้อมกัน
การแทนที่แบบง่าย
แทนที่ตัวเลขทั้งหมดในสตริงด้วยเครื่องหมายดอกจัน
<?php
$result = preg_replace('/\d/', '*', 'Order #12345');
echo $result; // "Order #*****"การอ้างอิงย้อนกลับในการแทนที่
ใช้ $1, $2... (หรือ \1, \2) เพื่อแทรกกลุ่มจับคู่ลงในสตริงที่จะใช้แทนที่
<?php
$result = preg_replace('/^(\w+)\s(\w+)$/', '$2, $1', 'John Smith');
echo $result; // "Smith, John"การอ้างอิงย้อนกลับแบบตั้งชื่อ
กลุ่มจับคู่แบบตั้งชื่อสามารถอ้างอิงเป็น ${name} ในสตริงที่จะใช้แทนที่
<?php
$result = preg_replace(
'/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
'${day}/${month}/${year}',
'2025-06-15'
);
echo $result; // "15/06/2025"การแทนที่หลายรูปแบบ
ส่งอาร์เรย์ของรูปแบบและค่าที่ใช้แทนที่เพื่อประมวลผลกฎหลายข้อพร้อมกัน
<?php
$result = preg_replace(
['/foo/', '/bar/'],
['baz', 'qux'],
'foo and bar'
);
echo $result; // "baz and qux"พารามิเตอร์ขีดจำกัด
พารามิเตอร์ตัวที่ 4 จำกัดจำนวนครั้งที่จะแทนที่ ส่งค่า -1 เพื่อไม่จำกัดจำนวน (ค่าเริ่มต้น)
<?php
$result = preg_replace('/a/', 'X', 'banana', 2);
echo $result; // "bXnXna"พารามิเตอร์จำนวน
ส่งตัวแปรตัวที่ 5 เพื่อรับจำนวนครั้งที่แทนที่
<?php
$count = 0;
$result = preg_replace('/e/', '3', 'hello everyone', -1, $count);
echo "$count replacements"; // "3 replacements"preg_replace_callback()
เมื่อมีกฎการแทนที่ที่ซับซ้อน ให้ใช้ preg_replace_callback() เพื่อประมวลผลการจับคู่แต่ละรายการด้วยคลอสเชอร์
<?php
$result = preg_replace_callback(
'/\d+/',
fn($m) => $m[0] * 2,
'Item: 5, Qty: 3'
);
echo $result; // "Item: 10, Qty: 6"ตัวอย่างการลบแท็ก HTML
ลบแท็ก HTML ทั้งหมดด้วยนิพจน์ทั่วไปแบบง่าย (ในระบบจริงให้ใช้ strip_tags())
<?php
$clean = preg_replace('/<[^>]+>/', '', '<b>Hello</b> World');
echo $clean; // "Hello World"การสร้างสลักจากสตริง
แปลงชื่อเรื่องให้เป็นสลักที่ปลอดภัยสำหรับ URL
<?php
function slugify(string $s): string {
$s = strtolower($s);
$s = preg_replace('/[^a-z0-9]+/', '-', $s);
return trim($s, '-');
}
echo slugify('Hello World!'); // "hello-world"หมายเหตุด้านประสิทธิภาพ
ทำรูปแบบให้เรียบง่ายและหลีกเลี่ยงการย้อนกลับแบบร้ายแรง ใช้ preg_replace_callback สำหรับการแปลงที่ซับซ้อน แทนการเรียกใช้ preg_replace หลายครั้งซ้อนกัน
ความแตกต่างจาก str_replace
str_replace ทำงานเร็วกว่าเมื่อแทนที่ข้อความธรรมดา ใช้ preg_replace เฉพาะเมื่อต้องการความสามารถของรูปแบบนิพจน์ทั่วไป
สรุป
preg_replace แทนที่การจับคู่ทั้งหมดของรูปแบบ ใช้การอ้างอิงย้อนกลับ ($1) เพื่อใช้กลุ่มจับคู่ซ้ำ และใช้ preg_replace_callback เมื่อกฎการแทนที่เปลี่ยนแปลงตามเงื่อนไข
ตรวจสอบอย่างรวดเร็ว
คุณอ้างอิงกลุ่มจับคู่แรกในสตริงที่จะใช้แทนที่ของ preg_replace อย่างไร
คำถามที่พบบ่อย
บทเรียน “การแทนที่ข้อความด้วย preg_replace” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแทนที่ข้อความด้วย preg_replace” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแทนที่ข้อความด้วย preg_replace”
แทนที่ส่วนที่ตรงกันด้วยสตริงทดแทนและการอ้างอิงย้อนกลับ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การแทนที่ข้อความด้วย preg_replace” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานไวยากรณ์ Regex
- การจับคู่ด้วย preg_match
- การแทนที่ข้อความด้วย preg_replace
- การแยกและรูปแบบที่ใช้ได้จริง