Mengatasi "Pengubah suai tidak diketahui 'g' dalam preg_match dalam PHP"
Semasa meneroka selok-belok ungkapan biasa, anda mungkin mengalami ralat mesej yang menyatakan "Pengubah suai tidak diketahui 'g' dalam..." apabila menggunakan preg_match. Isu ini timbul apabila cuba menggunakan pengubah suai 'g' dalam corak regex anda. Walau bagaimanapun, tiada pengubah suai 'g' dalam preg_match.
Untuk menyelesaikan isu ini, anda perlu bertukar kepada fungsi preg_match_all. Tidak seperti preg_match, yang mencari kejadian pertama corak dan mengembalikan nilai boolean, preg_match_all mencari semua kemunculan corak dan mengembalikan tatasusunan padanan.
Corak Regex Diubah Suai Dengan Betul
Corak regex asal anda ialah:
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim
Untuk menggunakan corak ini dengan preg_match_all, ubah suainya seperti berikut:
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im
Kod Disemak
Ganti panggilan preg_match asal anda dengan yang berikut:
preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
Dengan membuat pelarasan mudah ini, anda boleh menghapuskan ralat "'g' modifier not supported" dan memproses berbilang kejadian corak dengan betul dalam rentetan anda.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Pengubahsuai Tidak Diketahui 'g' dalam preg_match' dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!