Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP – mb_ereg_replac_callback() ฟังก์ชั่น


ใน 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 จะใช้ฟังก์ชันที่ไม่ระบุตัวตนและฟังก์ชันเรียกกลับจะถูกลบออก แต่เอาต์พุตยังคงเหมือนเดิม