Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan Biasa PHP: Bagaimana untuk memadankan semua medan teks dalam HTML

Ungkapan Biasa PHP: Bagaimana untuk memadankan semua medan teks dalam HTML

王林
王林asal
2023-06-23 10:16:451493semak imbas

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.

  1. Gunakan ungkapan biasa untuk memadankan medan teks

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 4750256ae76b6b9d804861d8f69e79d3 daripada HTML dan menambah nama mereka nilai atribut disimpan dalam tatasusunan $matches.

  1. Optimumkan lagi ungkapan biasa

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 4750256ae76b6b9d804861d8f69e79d3, 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.

  1. Senario aplikasi praktikal

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!

Kenyataan:
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