cari
RumahPerpustakaan PHPPerpustakaan lainPustaka penapisan htmlpurifierPHP
Pustaka penapisan htmlpurifierPHP

require_once '/path/to/HTMLPurifier.auto.php';

Mengikut spesifikasi ThinkPHP, untuk sambungan pihak ketiga yang tidak mematuhi spesifikasi pembangunan ThinkPHP, HTMLPurifier perlu diletakkan dalam direktori Library/Vendor. Kemudian kita boleh memperkenalkan HTMLPurifier.auto.php ke dalam program rangka kerja melalui kaedah berikut:

vendor('htmlpurifier.library.HTMLPurifier#auto');

Walau bagaimanapun, saya menggunakan ThinkPHP 3.2.1 di sini dan mendapati kaedah ini hanya boleh digunakan dalam fungsi, untuk kelas pengawal Pengenalan sedemikian tidak boleh diiktiraf dengan betul. Dalam erti kata lain, kami hanya boleh merujuknya dalam fail common/function.php.

Buat objek HTMLPurifier dan laksanakan penapisan teks kaya

$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);

Cara mengkonfigurasi penapis HTMLPurifier

Untuk menggunakan HTMLPurifier, tumpuan masih pada cara mengkonfigurasinya. Untuk program di atas, kami mencipta objek konfigurasi lalai melalui kaedah createDefault(). Jika kita ingin mengubah konfigurasi, kita boleh menggunakan kaedah set untuk mengkonfigurasi tetapan Kaedahnya adalah seperti berikut:

$config->set('config_object', value, a=null);

Parameter pertama ialah atribut yang perlu dikonfigurasikan, parameter kedua ialah nilai atribut, dan apakah kegunaan khusus bagi parameter ketiga? Saya belum mengetahuinya, tetapi saya tidak menggunakannya secara umum.

Atribut konfigurasi HTMLPurifier boleh ditanya melalui tapak webnya

Pemilihan atribut konfigurasi

Dokumen konfigurasi HTMLPurifier dikelaskan terutamanya kepada dua peringkat Kategori utama ialah Attr (atribut), HTML (tag html), AutoFormat (format automatik), CSS (konfigurasi css), Output (konfigurasi output)...Pemilihan subkategori boleh dilengkapkan dengan menambah nama kategori utama Menambah nama subkategori.

Sebagai contoh, jika saya ingin mengkonfigurasi tag html yang dibenarkan, seperti tag p dan tag, saya boleh mengkonfigurasinya seperti berikut

$config->set('HTML.Allowed', 'p,a');

Pemilihan nilai atribut

Dalam dokumen rasmi, selepas mengklik pada atribut, anda boleh lihat penjelasan atribut ini, Ia akan memberitahu anda bahawa jenis nilai (Jenis) atribut ini ialah String, Int, Array, Boolen...

Kemudian ia juga akan memberitahu anda nilai lalai atribut ini, seperti NULL , benar, salah, dsb. Format nilai ini adalah sama dengan format PHP.

Mekanisme penapisan senarai putih

HTMLPurifier menggunakan mekanisme penapisan senarai putih, dan hanya yang dibenarkan oleh tetapan akan lulus pemeriksaan.

Contoh penapisan asas

a, tapis semua teg html dalam teks

/**
 * 过滤掉所有html标签很简单,原因则在白名单机制完成
 */
$config->set('HTML.Allowed', '');

b, kekalkan teg hiperpautan a dan atribut alamat pautan hrefnya, dan secara automatik menambah nilai atribut sasaran sebagai '_blank'

rreee

c, Lengkapkan kod perenggan secara automatik dan kosongkan tag kosong yang tidak berguna

$config->set('HTML.Allowed', 'a[href]');
$config->set('HTML.TargetBlank', true);


Penafian

Semua sumber di laman web ini disumbangkan oleh netizen atau dicetak semula oleh tapak muat turun utama. Sila semak integriti perisian itu sendiri! Semua sumber di laman web ini adalah untuk rujukan pembelajaran sahaja. Tolong jangan gunakannya untuk tujuan komersial. Jika tidak, anda akan bertanggungjawab untuk semua akibat! Jika terdapat sebarang pelanggaran, sila hubungi kami untuk memadamkannya. Maklumat hubungan: admin@php.cn

Artikel Berkaitan

Bagaimana untuk Mencipta Perpustakaan Statik daripada Berbilang Perpustakaan Statik Lain?Bagaimana untuk Mencipta Perpustakaan Statik daripada Berbilang Perpustakaan Statik Lain?

17Dec2024

Mencipta Perpustakaan Statik yang Berpaut ke Perpustakaan Statik Lain Apabila membina perpustakaan statik yang bergantung pada kebergantungan daripada berbilang yang lain...

Pengepala Perpustakaan Standard C Manakah yang Termasuk Secara Eksplisit Lain?Pengepala Perpustakaan Standard C Manakah yang Termasuk Secara Eksplisit Lain?

01Nov2024

Pengepala yang manakah dalam Perpustakaan Standard C Termasuk Lain-lain? Secara umumnya, pengaturcara tidak seharusnya menganggap bahawa satu pengepala perpustakaan standard C akan...

Cara mengimport perpustakaan pihak ketiga dalam ThinkPHPCara mengimport perpustakaan pihak ketiga dalam ThinkPHP

03Jun2023

Perpustakaan kelas pihak ketiga Perpustakaan kelas pihak ketiga merujuk kepada perpustakaan kelas lain selain rangka kerja ThinkPHP dan perpustakaan kelas projek aplikasi Ia biasanya disediakan oleh sistem atau produk pihak ketiga, seperti perpustakaan kelas Smarty, Zend dan sistem lain. Untuk perpustakaan kelas yang diimport lebih awal menggunakan pemuatan automatik atau kaedah import, konvensyen ThinkPHP adalah menggunakan .class.php kerana akhiran bukan sedemikian perlu dikawal melalui parameter import. Tetapi untuk perpustakaan jenis ketiga, kerana tidak ada perjanjian sedemikian, akhirannya hanya boleh dianggap sebagai php. Untuk memperkenalkan perpustakaan kelas dengan mudah daripada rangka kerja dan sistem lain, ThinkPHP secara khusus menyediakan fungsi mengimport perpustakaan kelas pihak ketiga. Perpustakaan kelas pihak ketiga diletakkan secara seragam dalam direktori sistem ThinkPHP/

Bagaimanakah Saya Memautkan Perpustakaan Statik yang Bergantung pada Perpustakaan Statik Lain?Bagaimanakah Saya Memautkan Perpustakaan Statik yang Bergantung pada Perpustakaan Statik Lain?

13Dec2024

Memautkan Perpustakaan Statik ke Perpustakaan Statik Lain: Pendekatan Komprehensif Perpustakaan statik menyediakan mekanisme yang mudah untuk membungkus yang boleh digunakan semula...

Bagaimana perpustakaan dan rangka kerja popular dalam ekosistem C++ berbanding dengan ekosistem bahasa pengaturcaraan lainBagaimana perpustakaan dan rangka kerja popular dalam ekosistem C++ berbanding dengan ekosistem bahasa pengaturcaraan lain

02Jun2024

Perpustakaan dan rangka kerja popular dalam ekosistem C++ berbanding ekosistem bahasa pengaturcaraan lain Pengenalan C++ ialah bahasa yang penting untuk pengaturcaraan sistem, dengan ekosistem perpustakaan dan rangka kerja yang luas dan mantap. Artikel ini akan membandingkan perpustakaan dan rangka kerja dalam ekosistem C++ dengan yang terdapat dalam ekosistem bahasa pengaturcaraan popular yang lain, memfokuskan pada ciri, prestasi dan kemudahan penggunaan. Perpustakaan Standard Perpustakaan: Pustaka standard C++ menyediakan pelbagai struktur data, algoritma dan fungsi input/output. Walaupun bahasa lain mempunyai perpustakaan standard yang serupa, perpustakaan C++ terkenal dengan kecekapan dan fleksibilitinya. Pustaka Boost: Boost ialah koleksi perpustakaan pihak ketiga yang digunakan secara meluas yang menyediakan banyak ciri tambahan yang tidak terdapat dalam perpustakaan standard. Ia terkenal kerana menyediakan pelbagai ciri merentas platform seperti benang,

Bagaimana teknologi Golang berintegrasi dengan teknologi lain dalam pembelajaran mesinBagaimana teknologi Golang berintegrasi dengan teknologi lain dalam pembelajaran mesin

08May2024

Golang boleh disepadukan dengan teknologi lain dalam cara berikut: Penyepaduan dengan Python: menggunakan cgo untuk memanggil perpustakaan Python, atau memanggil fungsi R melalui perpustakaan gor. Sepadukan dengan R: gunakan pakej R, atau berinteraksi dengan R melalui perpustakaan gor. Sepadukan dengan teknologi lain: TensorFlow, Keras, Pandas, dsb. Penyepaduan ini meningkatkan keupayaan penyelesaian pembelajaran mesin.

See all articles