Bagaimana untuk membuang tag HTML menggunakan ungkapan biasa dalam PHP

王林
Lepaskan: 2023-06-24 08:50:01
asal
1300 orang telah melayarinya

Apabila menulis aplikasi web, kami selalunya perlu mengalih keluar teg HTML daripada input pengguna dan menukarnya kepada format teks biasa. Ini menghalang serangan skrip silang tapak (XSS) dan meningkatkan kebolehbacaan kandungan teks. Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mencapai matlamat ini.

Kaedah biasa ialah menggunakan fungsi strip_tags() PHP. Fungsi ini mengalih keluar semua tag HTML daripada rentetan. Walau bagaimanapun, terdapat kes di mana anda mungkin mahu mengekalkan beberapa teg, seperti pautan dan teg imej. Dalam kes ini, ungkapan biasa berguna.

Pertama, mari kita lihat cara menggunakan ungkapan biasa untuk mengalih keluar teg HTML dan menukarnya kepada teks biasa. Berikut ialah contoh kod PHP mudah:

$string = "<p>这是带有<strong> HTML标记 </strong>的文本。</p>";
$text = preg_replace("/<[^>]+>/", '', $string);
echo $text; // 输出: 这是带有 HTML标记 的文本。
Salin selepas log masuk

Maksud ungkapan biasa ini ialah: cari semua teks bermula dengan "<" dan berakhir dengan ">" dalam rentetan, dan gantikannya dengan kosong ( iaitu padam).

Sekarang, mari lihat cara untuk menyimpan teg HTML tertentu sahaja. Katakan kita ingin menyimpan tag < Berikut ialah kod sampel:

$string = "<p>这是带有<strong> HTML标记 </strong>的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。</p>";
$text = preg_replace("/<(?!a|img)[^>]*>/", '', $string);
echo $text; // 输出: 这是带有 HTML标记 的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。
Salin selepas log masuk

Maksud ungkapan biasa ini ialah: cari semua teks yang bermula dengan "<" dan berakhir dengan ">" dalam rentetan, tetapi tidak boleh < > atau teg <

Kita boleh menggunakan (?!) pandangan negatif ke hadapan untuk mencapai matlamat ini. Ungkapan ini memberitahu enjin ungkapan biasa, "Cari teg yang bermula dengan "<" dan berakhir dengan ">" tetapi bukan teg < a > atau < img >

Perhatikan bahawa kami juga menggunakan " " untuk memadankan sempadan label. Ini kerana jika kita meninggalkannya, contohnya menggunakan "" dan "< input >".

Dengan menggunakan kaedah di atas, anda boleh mengalih keluar teg HTML dan menukarnya kepada teks biasa menggunakan ungkapan biasa dalam PHP. Sila ambil perhatian bahawa ini hanyalah satu langkah dalam mencegah serangan XSS. Selalunya perlu menggunakan teknologi lain seperti pengesahan input, penapisan output dan pengurusan sesi untuk meningkatkan keselamatan aplikasi web.

Atas ialah kandungan terperinci Bagaimana untuk membuang tag HTML menggunakan ungkapan biasa dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!