Beralih daripada /e Pengubah suai preg_replace() kepada preg_replace_callback
Rujukan Balik/h2>Regular Expression Back-references ;
Di tengah-tengah peralihan ini memahami rujukan belakang dalam ungkapan biasa. Apabila corak mengandungi kumpulan penangkapan (dibataskan dengan kurungan), teks yang dipadankan dalam setiap kumpulan diberikan nombor rujukan belakang. Dalam kes ini, rujukan belakang 2 merujuk kepada huruf kecil yang dipadankan.
Pengubah suai /e dalam preg_replace()
Pengubah suai /e yang kini tidak digunakan lagi dalam preg_replace () dibenarkan untuk penggantian corak dengan kod PHP. Menggunakan pengubah suai ini, anda boleh menghasilkan rentetan gantian secara dinamik. Walau bagaimanapun, ia turut membawa risiko keselamatan kerana keupayaannya untuk melaksanakan kod sewenang-wenangnya.
Enter preg_replace_callback
preg_replace_callback menyediakan alternatif kepada pengubah suai /e dengan memperkenalkan fungsi panggil balik. Daripada membenamkan kod terus dalam corak regex, anda kini boleh menghantar fungsi tanpa nama atau panggilan balik yang mengendalikan proses penggantian.
Menterjemah Corak /e-Modified ke Panggilan Balik
Untuk menterjemah corak yang disediakan 'strtoupper("2")' ke dalam fungsi panggil balik, kita hanya boleh menggantikan '2' dengan $m[2], dengan $m mewakili tatasusunan yang mengandungi rujukan balik yang dipadankan di dalam panggilan balik.
Contoh Panggilan Balik Tanpa Nama
Contoh fungsi panggil balik tanpa nama:
function ($m) { return strtoupper($m[2]); }
Salin selepas log masuk
Fungsi ini mengambil tatasusunan $m sebagai input, yang mengandungi rujukan belakang. Ia kemudian menulis huruf besar pada rujukan belakang kedua ($m[2]) dan mengembalikannya sebagai pengganti.
Nota dan Kaveat
- Ingat untuk alih keluar pengubah suai /e daripada corak apabila menggunakan preg_replace_callback.
- Penggunaan /e pengubah suai menambah garis miring pada rujukan belakang; dalam sesetengah kes, anda mungkin perlu mengalih keluarnya dalam panggilan balik anda.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Pengubah suai /e preg_replace() dengan selamat dengan preg_replace_callback()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!