Dalam pengaturcaraan PHP, pengesahan data adalah tugas yang sangat penting. Apabila kami menerima data input luaran (seperti penyerahan borang daripada pengguna), kami perlu mengesahkan data sebelum menggunakannya untuk memastikan ia diformat dengan betul dan memenuhi keperluan kami. Satu kaedah pengesahan yang sangat praktikal ialah menggunakan ungkapan biasa.
Ungkapan biasa ialah alat pemadanan teks yang berkuasa yang boleh digunakan untuk mencorakkan rentetan padanan dan mengembalikan nilai yang sepadan selepas pemadanan berjaya. Menggunakan ungkapan biasa untuk pengesahan data dalam PHP membolehkan kami menyemak dengan cepat dan padat sama ada data memenuhi keperluan format yang ditentukan.
Ikhtisar
Menggunakan ungkapan biasa untuk pengesahan data dalam PHP memerlukan dua fungsi, iaitu preg_match dan preg_replace. Antaranya, preg_match digunakan untuk menyemak sama ada rentetan sepadan dengan corak ungkapan biasa yang ditentukan, manakala preg_replace digunakan untuk menggantikan bahagian rentetan yang sepadan dengan ungkapan biasa.
Di bawah ini kami menggunakan beberapa contoh khusus untuk memperkenalkan cara menggunakan ungkapan biasa untuk pengesahan data dalam PHP.
Dalam masyarakat moden, nombor telefon mudah alih telah menjadi bahagian yang amat diperlukan dalam kehidupan orang ramai Oleh itu, apabila mengesahkan nombor telefon bimbit pengguna, Kami memerlukan untuk memastikan ia diformat dengan betul.
Di China, format nombor telefon mudah alih terdiri daripada 11 digit, biasanya bermula dengan nombor 1. Oleh itu, kami boleh menggunakan ungkapan biasa untuk menyemak sama ada rentetan sepadan dengan format nombor telefon mudah alih Cina:
$pattern = '/^1d{10}$/'; $phone = '13812345678'; if (preg_match($pattern, $phone)) { echo 'Valid phone number'; } else { echo 'Invalid phone number'; }
Dalam kod di atas, kami menggunakan corak ungkapan biasa / ^1 d {10} $ / to semak sama ada nombor telefon mudah alih memenuhi keperluan format. Antaranya, ^ bermaksud memadankan permulaan rentetan, $ bermaksud memadankan hujung rentetan dan d {10} bermaksud memadankan 10 nombor. Jika bilangan digit yang terkandung dalam rentetan kurang daripada atau melebihi 11, ia juga akan dikesan sebagai nombor telefon mudah alih yang tidak sah.
Alamat e-mel juga merupakan data input biasa, jadi kami perlu mengesahkannya untuk memastikan ia berada dalam format yang betul. Ungkapan biasa menjadikannya mudah.
Berikut ialah contoh asas untuk mengesahkan alamat e-mel:
$pattern = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/'; $email = 'test@example.com'; if (preg_match($pattern, $email)) { echo 'Valid email address'; } else { echo 'Invalid email address'; }
Dalam kod di atas, kami telah menggunakan corak ungkapan biasa /^[a-zA-Z0-9._ %+ -]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/ untuk memadankan alamat e-mel. Antaranya, + bermaksud memadankan kandungan sebelumnya 1 kali atau lebih, [a-zA-Z0-9._%+-] bermaksud memadankan huruf, nombor dan simbol tertentu, 2 atau lebih huruf.
Perlu diingat bahawa alamat e-mel juga boleh mengandungi simbol khas lain, seperti garis bawah, tanda seru dan tanda paun. Jika anda perlu menyokong lebih banyak simbol khas, anda boleh menambahkannya pada corak ungkapan biasa.
Tarikh juga merupakan data input biasa Jika anda perlu merekodkan masa acara atau proses, anda perlu mengesahkan tarikh tersebut. Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mengesahkan format tarikh.
Berikut ialah contoh format tarikh pengesahan:
$pattern = '/^d{4}-d{1,2}-d{1,2}$/'; $date = '2021-11-11'; if (preg_match($pattern, $date)) { echo 'Valid date format'; } else { echo 'Invalid date format'; }
Dalam kod di atas, kami telah menggunakan corak ungkapan biasa / ^d{4}-d{1,2}-d { 1,2}$/ untuk memadankan format tarikh. Antaranya, d mewakili nombor, {4} mewakili padanan 4 digit dan - mewakili padanan sengkang. Ambil perhatian bahawa bilangan digit dalam bulan dan hari di sini mungkin 1 atau 2 digit, jadi kami menggunakan d {1,2} untuk mewakili bilangan digit yang mungkin.
Kata laluan juga merupakan data input biasa dan keselamatannya perlu dipastikan. Dalam PHP, satu cara untuk mengesahkan kata laluan adalah dengan menggunakan ungkapan biasa. Kami boleh menghendaki kata laluan mesti mengandungi sekurang-kurangnya satu huruf besar, satu huruf kecil, satu nombor dan satu simbol khas, dan panjangnya antara 8 dan 16 aksara.
Berikut ialah contoh ungkapan biasa untuk mengesahkan kata laluan:
$pattern = '/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[@$!%*?&_])[A-Za-zd@$!%*?&_]{8,16}$/'; $password = 'P@ssw0rd'; if (preg_match($pattern, $password)) { echo 'Valid password'; } else { echo 'Invalid password'; }
Dalam kod di atas, kami telah menggunakan corak ungkapan biasa / ^(?=.[a-z]) (? =.[A-Z])(?=.d)(?=.[@$!%*?&_])[A-Za-zd@$!% ?&_ ]{8,16}$/ untuk memadankan kata laluan. Antaranya, (?=.*[a-z]) bermaksud sekurang-kurangnya satu huruf kecil, (?=.*[A-Z]) bermaksud sekurang-kurangnya satu huruf besar, (?=.*d) bermaksud sekurang-kurangnya satu nombor, (? = .*[@$!%?&_]) bermakna terdapat sekurang-kurangnya satu aksara khas, [A-Za-zd@$!%*?&_]{8,16} bermaksud panjang kata laluan antara 8 dan 16 aksara antara.
Ringkasan
Dalam artikel ini, kami meneroka cara menggunakan ungkapan biasa untuk pengesahan data dalam PHP. Melalui ungkapan biasa, kami boleh dengan mudah mengesahkan telefon bimbit, mengesahkan e-mel, mengesahkan tarikh, mengesahkan kata laluan dan operasi lain. Ungkapan biasa boleh menjadi alat yang sangat berguna jika anda memerlukan pengesahan data dalam program PHP anda. Memahami dan menguasai asas ungkapan biasa akan membantu anda menulis atur cara dengan lebih cekap.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan ungkapan biasa untuk pengesahan data dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!