Dalam HTML, medan teks biasanya digunakan untuk menerima data input pengguna, yang mesti disahkan dan ditapis sebelum ia boleh diproses dan disimpan dengan betul oleh aplikasi. Ungkapan biasa ialah alat berkuasa yang boleh digunakan untuk menyemak dan menapis data input pengguna. Terutamanya dalam PHP, ungkapan biasa boleh digunakan dengan fungsi terbina dalam untuk membuat pengesahan dan pemprosesan medan teks dalam bentuk HTML lebih mudah.
Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan semua medan teks dalam bentuk HTML, sambil menunjukkan beberapa contoh kod dan senario aplikasi praktikal.
Dalam bentuk HTML, medan teks biasanya ditakrifkan menggunakan teg berikut:
<textarea name="mytextarea">输入文本...</textarea>
Kita boleh menggunakan mengikuti kod PHP untuk memadankan medan teks:
$html = '<textarea name="mytextarea">输入文本...</textarea>'; preg_match_all('/.*?/', $html, $matches); print_r($matches[1]);
Dalam kod di atas, kami menggunakan fungsi preg_match_all() dan ungkapan biasa untuk memadankan semua medan teks yang ditakrifkan menggunakan tag <textarea>
daripada HTML dan menambah nama mereka nilai atribut disimpan dalam tatasusunan $matches.
Walaupun ungkapan biasa di atas boleh memadankan medan teks dalam kebanyakan kes, beberapa masalah mungkin berlaku dalam beberapa kes. Contohnya, jika lebih daripada satu atribut ditakrifkan dalam teg <textarea>
, proses pemadanan mungkin gagal. Untuk menyelesaikan masalah ini, kami boleh menggunakan ungkapan biasa yang lebih mantap dan fleksibel:
$html = '<textarea rows="4" cols="50" name="mytextarea">输入文本...</textarea>'; preg_match_all('/<textareas+.*?(?:name|id)="([^"]+)".*?>.*?</textarea>/', $html, $matches); print_r($matches[1]);
Dalam ungkapan biasa di atas, kami menggunakan kumpulan bukan menangkap (? :) untuk mentakrifkan berbilang atribut. Dengan cara ini, tidak kira sama ada terdapat atribut lain dalam medan teks, pemadanan boleh dilakukan dengan betul.
Menggunakan ungkapan biasa di atas boleh memadankan semua medan teks dalam HTML dengan mudah dan juga boleh digunakan pada pelbagai senario praktikal. Contohnya, semasa membangunkan pengesah borang, anda boleh menggunakan ungkapan biasa untuk menyemak sama ada data yang dimasukkan oleh pengguna memenuhi keperluan.
Berikut ialah contoh kod mudah untuk mengesahkan data borang yang diserahkan oleh pengguna:
$regex = array( 'name' => '/^[a-zA-Zs]+$/', 'phone' => '/^d{3,}$/', 'email' => '/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,4})+$/' ); $errors = array(); foreach ($_POST as $key => $value) { // 根据 name 属性值判断是否为文本域 if (preg_match('/textarea|input/i', $key)) { // 根据 name 属性值获取正则表达式 $pattern = isset($regex[$key]) ? $regex[$key] : ''; // 验证数据是否符合正则表达式 if (!preg_match($pattern, $value)) { $errors[$key] = 'Invalid input'; } } } if (count($errors) > 0) { // 提交的数据有错误 } else { // 提交数据正确,进行后续处理 }
Dalam kod di atas, kami menggunakan tatasusunan bernama $regex untuk menyimpan setiap ungkapan biasa medan teks. Kemudian gelung melalui tatasusunan $_POST untuk menyemak sama ada data input setiap medan teks sepadan dengan ungkapan biasa yang sepadan. Jika terdapat ralat, maklumat ralat disimpan dalam tatasusunan $errors untuk pemprosesan seterusnya.
Dalam pembangunan sebenar, menggunakan ungkapan biasa untuk memadankan medan teks dalam HTML boleh meningkatkan kecekapan pembangunan dan kualiti kod, menjadikan pemprosesan data lebih tepat, stabil dan selamat.
Atas ialah kandungan terperinci Ungkapan Biasa PHP: Bagaimana untuk memadankan semua medan teks dalam HTML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!