ฟังก์ชันบล็อก PREG_FILTER

ฟังก์ชันบล็อก PREG_FILTER ค้นหาและแทนที่ด้วยการใช้ตัวดำเนินการแบบปกติ

หมายเหตุ: ฟังก์ชันนี้เป็น Binary-Safe. หมายความว่า ตัวอักษร UTF8 ไม่สามารถแก้ไขได้โดยตรง

นอกจากฟังก์ชันบล็อก PREG_FILTER จะคืนค่าฐานข้อมูล (ที่อาจถูกแปลง) เท่านั้นเมื่อมีการตรงกันแล้ว ฟังก์ชันนี้เหมือนกับฟังก์ชันบล็อก PREG_REPLACE ในทุกประการ

อินพุต PATTERN

ตัวดำเนินการในรูปแบบสตริงที่จะค้นหา มี PCRE Modifiers ที่สามารถใช้ได้บางส่วน

อินพุต REPLACEMENT

สตริงที่ใช้แทนที่ สามารถมีการอ้างอิงในรูปแบบ \n หรือ $n ซึ่งหลังนี้ควรจะใช้มากกว่า ค่าที่อ้างอิงเหล่านี้จะถูกแทนที่ด้วยข้อความที่ถูกจับโดยตัวอย่างค้นหาในกลุ่มที่ n เป็นตัวเลขที่มีค่า 0 ถึง 99 \0 หรือ $0 อ้างอิงถึงข้อความที่ตรงกับตัวอย่างค้นหาทั้งหมด เพื่อให้ได้หมายเลขของกลุ่มย่อยที่จับได้ ใช้การนับวงเล็บเปิดจากซ้ายไปขวาเริ่มต้นด้วย 1 เพื่อใช้แบ็กสแลชในการแทนที่ต้องทำให้เป็นคู่ "\\".

ถ้าคุณต้องการทำงานกับการแทนที่ที่มีตัวอ้างอิงตามด้วยตัวเลข (คือ ต้องการให้ตัวเลขมาหลังจากการตรงกันของตัวอย่างค้นหา) คุณไม่สามารถใช้รูปแบบ \1 สำหรับการอ้างอิงกลับได้ ตัวอย่างเช่น \11 จะทำให้ฟังก์ชันสับสน เพราะมันไม่ทราบว่าคุณต้องการใช้การอ้างอิงกลับ \1 ตามด้วยตัวเลข 1 หรือเพียงแค่การอ้างอิงกลับ \11 ในกรณีนี้ การแก้ไขคือใช้ ${1}1 เพื่อสร้างการอ้างอิงกลับที่แยกออกมา $1 และ 1 จะเป็นตัวอักษร

ถ้าคุณใช้ Modifiers ที่เก่าไป e ฟังก์ชันนี้จะทำการปิดบังตัวอักษรบางตัว (คือ ', ", \ และ NULL) ในสตริงที่ใช้แทนที่การอ้างอิงกลับนี้จะทำให้เกิดข้อผิดพลาดในการประมวลผลเมื่อมีการใช้ตัวอักษรเดี่ยวหรือคู่ การป้องกันการเกิดข้อผิดพลาดนี้จะทำให้สตริงที่ถูกประมวลผลดูเหมือนกับสตริงที่ไม่ได้ถูกประมวลผล ดังนั้น คุณควรทราบว่าสตริงที่ถูกประมวลผลมีรูปแบบใด

อินพุต SUBJECT

อินพุตนี้กำหนดสตริงที่จะค้นหา

อินพุต LIMIT

จำนวนการแทนที่สูงสุดที่เป็นไปได้สำหรับแต่ละตัวอย่างในแต่ละ subject ค่าฐานเดิม: -1 หรือ NULL (ไม่มีการจำกัด)

เอาท์พุต Q

ถ้ามีการตรงกัน (อาจเป็นสตริงที่ถูกแปลง) จะคืนค่าสตริงใหม่ Q ถ้าไม่มีการตรงกันจะคืนค่า SUBJECT ที่ไม่ได้รับการเปลี่ยนแปลง หรือ NULL หากเกิดข้อผิดพลาด

เอาท์พุต COUNT

เอาท์พุตนี้คืนจำนวนการแทนที่ที่ถูกทำ