Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menggantikan Pengubah suai /e preg_replace() dengan selamat dengan preg_replace_callback()?

Bagaimana untuk Menggantikan Pengubah suai /e preg_replace() dengan selamat dengan preg_replace_callback()?

Linda Hamilton
Lepaskan: 2024-12-31 02:25:10
asal
782 orang telah melayarinya

How to Safely Replace preg_replace()'s /e Modifier with preg_replace_callback()?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan