ฟังก์ชัน preg_replace_callback
ฟังก์ชัน preg_replace_callback ดำเนินการค้นหาด้วยนิพจน์ทั่วไปและการแทนที่โดยใช้ callback function พารามิเตอร์แรกรับนิพจน์ทั่วไป พารามิเตอร์ที่สอง - callback function และพารามิเตอร์ที่สาม - สตริงสำหรับประมวลผล Callback function จะได้รับอาร์เรย์ของผลลัพธ์ที่ตรงกันและต้องคืนค่าสตริงสำหรับการแทนที่
ไวยากรณ์
preg_replace_callback(pattern, callback, subject, [limit], [count]);
ตัวอย่าง
ลองแทนที่ตัวเลขทั้งหมดในสตริงด้วยค่ากำลังสองของพวกมัน:
<?php
$str = 'Numbers: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
ผลลัพธ์จากการรันโค้ด:
'Numbers: 4, 16, 36'
ตัวอย่าง
แปลงคำทั้งหมดเป็นตัวพิมพ์ใหญ่:
<?php
$str = 'hello world';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
ผลลัพธ์จากการรันโค้ด:
'HELLO WORLD'
ตัวอย่าง
เพิ่มวงเล็บรอบตัวเลขแต่ละตัว:
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
ผลลัพธ์จากการรันโค้ด:
'(1) (2) (3) (4) (5)'
ดูเพิ่มเติม
-
ฟังก์ชัน
preg_replace,
ซึ่งดำเนินการแทนที่ด้วยนิพจน์ทั่วไป -
ฟังก์ชัน
preg_match,
ซึ่งดำเนินการค้นหาด้วยนิพจน์ทั่วไป