PHP strip_tags()

王林
Lepaskan: 2024-08-29 12:52:40
asal
1148 orang telah melayarinya

Fungsi strip_tags() dalam PHP ialah fungsi terbina yang menanggalkan/mengalih keluar rentetan daripada teg HTML dan PHP. Ini mengembalikan rentetan yang mempunyai nilai NULL dalam bait dan HTML, tag PHP dialih keluar/dilucutkan daripada rentetan input yang diberikan. Fungsi ini pada asasnya membantu apabila kami memaparkan input pengguna ke tapak kami. Contohnya, apabila kami mencipta forum mesej kami di tapak, pengguna boleh menyiarkan tajuk seperti berikut:

TAPAK INI BURUK!

. Jika tapak web memaparkan semua tajuk setiap siaran maka mesej yang tidak diingini ini juga akan dipaparkan di tapak dalam format tajuk kepada semua pelawat halaman. Oleh itu dengan menggunakan fungsi strip_tag() ini ia akan membantu dalam membasmi isu tersebut.

IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks:

string strip_tags( $str, $allowed_tags )

Parameter Diperlukan: Terdapat 2 parameter yang diterima oleh fungsi;

  • $str menjadi parameter wajib dan yang merupakan rentetan utama yang perlu disemak.
  • $allowed_tags ialah parameter bukan mandatori yang menerangkan teg yang dibenarkan dan tidak boleh dilucutkan. Oleh itu teg ini akan dikekalkan.

Nilai Pulangan: Fungsi strip_tags ini memberikan kita rentetan terhasil yang dilucutkan daripada rentetan input.

Pengecualian:

  • Fungsi ini tidak menyediakan pengesahan HTML.
  • Beberapa perkara yang dilucutkan secara lalai ialah ulasan HTML dan teg PHP dan perkara ini tidak boleh ditukar kerana ia dikodkan dengan keras.
  • Teg XHTML yang menutup sendiri diabaikan dalam versi selepas PHP 5.3.4 dan oleh itu hanya teg yang tidak menutup sendiri dibenarkan untuk digunakan dalam $allowed_tags.

Contoh Fungsi PHP strip_tags()

Mari kita ambil beberapa contoh untuk memahami fungsi PHP strip_tags.

Contoh #1

Kod:

<?php<br /> // PHP programme to demostrate<br /> // strip_tags function without $allowed_tags parameter<br /> echo strip_tags("Hello <b>Sample Program!</b>");<br> ?>

Output:

PHP strip_tags()

Dalam contoh di atas kami memaparkan kod PHP mudah untuk menggambarkan bahawa fungsi strip_tags boleh digunakan tanpa menyatakan parameter kedua untuk menentukan semua aksara yang dibenarkan. Ini bermakna semua aksara dalam rentetan dibenarkan dan dicetak sebagaimana adanya.

Contoh #2

Kod:

<?php<br /> $str = '<p>To test a paragraph.</p><!-- Starting comments --> <a href="#fragment">Another paragraph goes here</a>';<br> echo strip_tags($str);<br> echo "n";<br> // Here we allow HTML tag <p><br> echo strip_tags($str, '<p>');<br> // In the version till PHP 7.4.0 the above code can be written as:<br> // echo strip_tags($str, ['p', 'a']);<br> ?>

Output:

PHP strip_tags()

Dalam contoh di atas kita mula-mula menentukan kod HTML yang diperlukan dan memberikan yang sama kepada rentetan input $str. Kami kemudian menggunakan fungsi tag jalur pada rentetan itu dengan hanya menggunakan parameter tunggal. Seterusnya kami mempamerkan penggunaan parameter kedua $allow_tags di mana kami menetapkan hanya tag

bermakna hanya

tag hendaklah dibenarkan dan rehat semua tag hendaklah dipangkas. Oleh itu dalam output kita dapat melihat bahawa hanya

maklumat teg dipaparkan dan maklumat tag tidak dipaparkan. Juga kita dapat melihat bahawa dalam output komen HTML tidak dicetak dan dengan itu membuktikan bahawa komen HTML dipangkas oleh fungsi ini secara lalai walaupun kita tidak menyatakan dalam senarai parameter kedua.

Amaran:

  • Fungsi ini tidak boleh digunakan untuk menghalang serangan tertentu seperti XSS. Terdapat kaedah atau fungsi lain yang sesuai seperti htmlspecialchars() yang boleh digunakan untuk tujuan ini bergantung pada jenis output yang diperlukan.
  • Fungsi strip_tags() hanya memangkas teg HTML tanpa benar-benar mengesahkannya. Akibatnya, ini boleh menyebabkan teg rosak atau mengalih keluar lebih banyak/kurang data daripada yang dijangkakan. Oleh itu, ia harus dijaga semasa menentukan parameter kedua fungsi.
  • Fungsi ini juga tidak menyokong sebarang pengubahsuaian pada parameter yang kami tentukan dalam fungsi $allowed_tags juga termasuk atribut onmouseover dan gaya yang mungkin digunakan oleh sesetengah pengguna untuk menyiarkan teks untuk dipaparkan kepada pengguna lain.
  • Satu lagi perkara yang perlu diambil perhatian semasa menggunakan fungsi ini ialah nama tag yang aksaranya lebih besar daripada panjang tertentu (1023 bait) dalam HTML akan dianggap seolah-olah tidak sah, tanpa mengira apa yang kami berikan dalam $allowed_tags sebagai parameter .

Contoh #3

Kod:

<?php<br /> $str = '<a title="" href="/index.html"><b>Some Text</b></a><br> Just a sample text to showcase a paragraph coming in HTML body';<br> echo strip_tags_content($str);<br> function strip_tags_content($str) {<br> return preg_replace('@<(w+)b.*?>.*?</1>@si', '', $str);<br> }<br> ?>

Output:

PHP strip_tags()

Dalam contoh di atas kami menggunakan fungsi strip_tags untuk mengalih keluar tag anchor bersama-sama dengan kandungannya dalam rentetan inputnya. PHP strip_tags akan mengalih keluar kedua-dua teg HTML pembuka dan penutup secara automatik apabila ia dilucutkan.

Contoh #4

Kod:

<?php<br /> $str = '<?= '<?= 1 ?>' ?>2';<br> var_dump(strip_tags($str));<br> ?>

Output:

PHP strip_tags()

Contoh ini menunjukkan cara untuk menanggalkan kandungan daripada teg PHP bersarang.

Contoh #5

Kod:

<?php // Test.php<br /> $str = '<br>Trial<br/>on<br />NewLine';<br> $d = strip_tags($str, '<br />');<br> var_dump($d); // Displays string(11) "TraialonNewLine" on output<br> ?>

Output:

PHP strip_tags()

Dalam contoh ini, kita dapat melihat bahawa kita hanya membenarkan kandungan di dalam
rentetan dan output ini di sini akan berubah apabila kami menjalankan dalam versi PHP yang berbeza.

Contoh #6

Kod:

<?php<br> function strip_tags_d($a)<br> {<br> return is_array($a) ?<br> array_map('strip_tags_d', $a) :<br> strip_tags($a);<br> }<br> // Example<br> $arr1 = array('<b>Car</b>', '<i>Bat</i>', array('<b>Car</b>', '<i>Bat</i>'));<br> $arr1 = strip_tags_d($arr1);<br> // Output<br> print_r($arr1);<br> ?>

Output:

PHP strip_tags()

Dalam contoh di atas, kami memaparkan penggunaan fungsi rekursif untuk fungsi strip_tags. Oleh itu dalam output kita dapat melihat bahawa tatasusunan dicetak dalam gelung 2.

Kesimpulan

Seperti yang ditunjukkan di atas, kami melihat cara untuk menanggalkan beberapa teg HTML dan PHP yang tidak diingini daripada kod dengan menggunakan fungsi strip_tags(). Fungsi ini boleh menghuraikan rentetan input dan mengekstrak strukturnya. Ia biasanya memangkas atau menggantikan teg HTML atau PHP yang diberikan yang kami luluskan sebagai senarai argumen input untuk dialih keluar daripada dokumen HTML. Ini juga digunakan dalam kes apabila kita hanya perlu memangkas teg PHP dan bukan HTML dan sebaliknya.

Artikel Disyorkan

Ini ialah panduan kepada PHP strip_tags(). Di sini kita membincangkan Pengenalan kepada Fungsi PHP strip_tags() dan contoh-contohnya bersama dengan Pelaksanaan Kod. Anda juga boleh membaca artikel cadangan kami yang lain untuk mengetahui lebih lanjut-

  1. Rangka Kerja PHP
  2. Cuncang PHP()
  3. PHP setlocale()
  4. masa PHP strtotime

Atas ialah kandungan terperinci PHP strip_tags(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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