Aksara khas yang biasa digunakan untuk pengesahan ungkapan biasa PHP
Dalam pengaturcaraan, kita selalunya perlu mengesahkan data yang dimasukkan oleh pengguna. Dalam PHP, ungkapan biasa boleh memenuhi keperluan ini dengan mudah. Walau bagaimanapun, disebabkan oleh pelbagai jenis data yang dimasukkan oleh pengguna, kadangkala kita perlu memberi perhatian khusus kepada pengesahan aksara khas untuk memastikan kesahihan dan keselamatan data.
Julat aksara khas sangat luas, seperti teg HTML, alamat URL, teg XML, pernyataan SQL, dll. semuanya adalah aksara khas. Watak-watak ini boleh menjejaskan pelaksanaan program, atau dieksploitasi secara tidak wajar untuk menyebabkan kelemahan keselamatan. Oleh itu, kita perlu mengetahui aksara khas yang biasa digunakan dan menggunakan ungkapan biasa PHP untuk pengesahan.
Teg HTML ialah elemen penting dalam halaman web. Walau bagaimanapun, jika tidak ditapis dengan betul, tag ini juga boleh dieksploitasi untuk serangan. Ungkapan biasa PHP boleh digunakan untuk mengesahkan dan membersihkan teg HTML. Contohnya, ungkapan biasa berikut boleh mengesahkan sama ada teg HTML disertakan:
if (preg_match('/<(.*)>.*</>|<(.*) />/', $string)) { echo "包含HTML标记"; } else { echo "没有包含HTML标记"; }
Dalam ungkapan biasa di atas, mewakili padanan dalam kurungan pertama dalam ungkapan biasa dan
mewakili pertama Padanan antara dua kurungan.
Aksara Alfanumerik ialah rentetan huruf dan nombor. Dalam sesetengah senario, hanya aksara abjad angka dibenarkan Dalam kes ini, kita boleh menggunakan ungkapan biasa berikut untuk pengesahan:
if (preg_match('/^[a-zA-Z0-9]+$/', $string)) { echo "是字母数字字符"; } else { echo "不是字母数字字符"; }
Dalam ungkapan biasa di atas, ^
mewakili permulaan rentetan dan $
mewakili Penghujung rentetan, [a-zA-Z0-9]
bermaksud memadankan mana-mana huruf atau nombor.
Dalam aplikasi, selalunya perlu untuk mengesahkan alamat URL yang dimasukkan oleh pengguna. Format alamat URL boleh disahkan dengan menggunakan ungkapan biasa berikut:
if (preg_match('/^http://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(/S*)?$/', $url)) { echo "URL地址格式正确"; } else { echo "URL地址格式错误"; }
Dalam ungkapan biasa di atas, ^
mewakili permulaan rentetan, $
mewakili penghujung rentetan http://
mewakili padanan dengan " Rentetan yang bermula dengan "http://"; [a-zA-Z0-9-.]+
bermaksud memadankan mana-mana huruf, nombor, sempang atau noktah dan nombor itu sekurang-kurangnya 1; [a-zA-Z]{2,3}
bermaksud memadankan mana-mana dua atau tiga huruf; (/S*)?
bermaksud memadankan padanan garis miring diikuti dengan sebarang bilangan aksara bukan kosong, bahagian ini adalah pilihan.
Dalam dokumen XML, teg dan kandungannya dibentangkan dalam format tertentu. Gunakan ungkapan biasa berikut untuk mengesahkan sama ada format teg XML adalah betul:
if (preg_match('/^<([^/]+?)>.*</>$/', $xml)) { echo "XML标签格式正确"; } else { echo "XML标签格式错误"; }
Dalam ungkapan biasa di atas, ^
mewakili permulaan rentetan, $
mewakili penghujung rentetan, dan <([^/]+?)>
mewakili padanan mana-mana aksara bukan segaris, kurungan menunjukkan untuk menggunakan bahagian ini sebagai padanan pertama dan merekodkannya; perlawanan. .*
</>
function filter_sql($string) { // 去除SQL关键字 $string = preg_replace('/(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)/i', "", $string); // 去除单引号 $string = str_replace("'", "", $string); return $string; }
Dalam ungkapan biasa di atas,
mewakili sempadan perkataan, mewakili padanan kata kunci ini, Menunjukkan ketidakpekaan kes.
(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)
i
Apabila menulis aplikasi, kita perlu mempertimbangkan kepelbagaian dan keselamatan data Adalah sangat perlu untuk menggunakan ungkapan biasa PHP untuk mengesahkan dan membersihkan data yang dimasukkan pengguna. Melalui contoh di atas, kita dapat melihat bahawa ungkapan biasa PHP sangat berkuasa dan fleksibel, boleh digunakan dalam pelbagai senario, dan membantu kami memastikan keselamatan dan kebolehpercayaan aplikasi.
Atas ialah kandungan terperinci Ungkapan biasa PHP untuk mengesahkan aksara khas biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!