ใน PHP mb_ereg_replace_callback() ฟังก์ชันใช้เพื่อดำเนินการค้นหานิพจน์ทั่วไปและแทนที่ด้วยการสนับสนุนแบบหลายไบต์โดยใช้การเรียกกลับ มันจะสแกนสตริงและจับคู่กับรูปแบบ จากนั้นจะแทนที่ข้อความที่ตรงกันด้วยผลลัพธ์ของฟังก์ชันการโทรกลับ ฟังก์ชันนี้เหมือนกับ mb_ereg_replace() การทำงาน. รองรับใน PHP 5.4 หรือเวอร์ชันที่สูงกว่า
ไวยากรณ์
string mb_ereg_replace_callback(str $pattern, callback $callback, str $string, str $options)
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์สี่ตัวต่อไปนี้ -
-
$pattern − พารามิเตอร์นี้ใช้สำหรับรูปแบบนิพจน์ทั่วไป อาจใช้อักขระหลายไบต์ในรูปแบบ
-
$โทรกลับ − พารามิเตอร์นี้จะถูกเรียกและส่งผ่านอาร์เรย์ขององค์ประกอบที่ตรงกันในสตริงหัวเรื่องและควรส่งคืนสตริงการแทนที่
-
$string − พารามิเตอร์นี้ใช้ตรวจสอบสตริง
-
$options − พารามิเตอร์นี้ใช้ตรวจสอบตัวเลือกการค้นหา
หมายเหตุ − ฟังก์ชันเรียกกลับมักต้องการ mb_ereg_replace_callback() ในที่เดียว คุณยังสามารถใช้ฟังก์ชันที่ไม่ระบุตัวตน เพื่อประกาศการโทรกลับภายในการโทร mb_ereg_replace_callback() . เมื่อใช้สิ่งนี้ เราสามารถมีข้อมูลทั้งหมดสำหรับการโทรในที่เดียว และไม่รบกวนเนมสเปซของฟังก์ชันด้วยชื่อฟังก์ชันเรียกกลับซึ่งไม่ได้ใช้ในที่อื่น
คืนค่า
mb_ereg_replace_callback() คืนค่าความสำเร็จสำหรับสตริงผลลัพธ์หรือคืนค่า False จากข้อผิดพลาด คืนค่า NULL หากสตริงไม่ถูกต้องสำหรับการเข้ารหัสปัจจุบัน
ตัวอย่างที่ 1
<?php $result = "April Fools day is 04/01/2019\n"; $result.= "Next match is 12/24/2021\n"; // callback function function next_year($matches) { return $matches[1].($matches[2]+1); } echo mb_ereg_replace_callback( "(\d{2}/\d{2}/)(\d{4})", "next_year", $result); ?>
ผลลัพธ์
April Fools day is 04/01/2020 Next match is 12/24/2022
ตัวอย่างที่ 2
การใช้ฟังก์ชันนิรนาม
<?php // anonymous function is used $result = "April Fools day is 04/01/2019\n"; $result.= "Next match is 12/24/2021\n"; echo mb_ereg_replace_callback( "(\d{2}/\d{2}/)(\d{4})", function ($matches) { return $matches[1].($matches[2]+1); }, $result); ?>
ผลลัพธ์
April fools day is 04/01/2020 Next match is 12/24/2022
หมายเหตุ − ในตัวอย่างที่ 2 จะใช้ฟังก์ชันที่ไม่ระบุตัวตนและฟังก์ชันเรียกกลับจะถูกลบออก แต่เอาต์พุตยังคงเหมือนเดิม