Dalam pembangunan bahagian hadapan, kami selalunya perlu menggunakan JavaScript untuk mencapai kesan interaktif dinamik pada halaman. Dalam halaman HTML, kami biasanya mentakrifkan fungsi JavaScript dalam teg <script>
dan menggunakan keupayaan penghuraian penyemak imbas untuk melaksanakan fungsi ini. Kadangkala, kita perlu mengekstrak semua fungsi JavaScript dari halaman HTML dan melakukan beberapa pemprosesan padanya, seperti menganalisis struktur kod fungsi, mencari lokasi panggilan fungsi, mengubah suai pelaksanaan fungsi, dsb. Pada masa ini, kita boleh menggunakan ungkapan biasa PHP untuk memadankan fungsi JavaScript dalam kod HTML.
Jadi, bagaimana untuk menggunakan ungkapan biasa PHP untuk memadankan semua fungsi JavaScript dalam HTML? Berikut ialah contoh mudah:
<?php $html = '<html> <head> <title>My HTML Page</title> <script> function hello() { alert("Hello, world!"); } </script> </head> <body> <script> function greet(name) { alert("Hello, " + name + "!"); } </script> <p>Welcome to my HTML page!</p> </body> </html>'; // 定义正则表达式 $pattern = '/<script>s*functions+(w+)s*((.*?))s*{([sS]*?)}s*</script>/i'; // 进行匹配 preg_match_all($pattern, $html, $matches); // 输出匹配结果 foreach ($matches[1] as $index => $function) { echo "Function $function:<br>"; echo $matches[0][$index] . "<br><br>"; } ?>
Dalam contoh di atas, rentetan kod HTML $html
yang mengandungi fungsi JavaScript mula-mula ditakrifkan, dan kemudian ungkapan biasa $pattern
ditakrifkan untuk memadankannya Semua fungsi JavaScript . Penjelasan ungkapan biasa ini adalah seperti berikut:
<script>
: sepadan dengan permulaan tag <script>
; s*
: sepadan dengan kata kunci function
function
: sepadan dengan satu atau lebih aksara ruang kosong; s+
(w+)
w
: sepadan dengan sifar atau lebih aksara ruang putih; termasuk baris baharu dan ruang; s*
: sepadan dengan hujung tag ((.*?))
(.*?)
Seterusnya, kami menggunakan fungsi s*
{([sS]*?)}
Dalam proses pembangunan sebenar, kami boleh melaraskan peraturan padanan ungkapan biasa mengikut situasi berbeza untuk mendapatkan hasil padanan yang lebih tepat. Selain itu, ungkapan biasa kurang cekap dan mungkin mempunyai kesan tertentu pada prestasi program, jadi ia perlu digunakan dan dioptimumkan dengan berhati-hati. [sS]*?
Atas ialah kandungan terperinci Ungkapan Biasa PHP: Bagaimana untuk memadankan semua fungsi JavaScript dalam HTML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!