国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 PHP 函式庫 其它類別庫 htmlpurifierPHP過濾庫
htmlpurifierPHP過濾庫

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

#根據(jù)ThinkPHP的規(guī)範(fàn),對(duì)於第三方擴(kuò)展,不符合ThinkPHP開發(fā)規(guī)範(fàn)的,需要將HTMLPurifier放入Library/Vendor目錄中。然後我們可以在方法中透過下面方法將HTMLPurifier.auto.php引入框架程式中:

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

不過這裡我使用的ThinkPHP 3.2.1,發(fā)現(xiàn)這個(gè)方法只能使用在函數(shù)中,對(duì)於控制器類別中這樣引入是無法正確辨識(shí)的。也就是說,我們只能在common/function.php檔案中引用。

建立HTMLPurifier物件並實(shí)作對(duì)富文本的過濾

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

如何對(duì)HTMLPurifer的過濾器進(jìn)行配置

要使用HTMLPurifier,重點(diǎn)還是在如何進(jìn)行設(shè)定。對(duì)於上面的程序,我們透過createDefault()方法創(chuàng)建了一個(gè)預(yù)設(shè)的配置物件。我們?nèi)绻薷呐渲玫脑?,可以透過set方法來進(jìn)行配置設(shè)置,方法如下:

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

第一個(gè)參數(shù)就是需要配置的屬性,第二個(gè)參數(shù)就是屬性的值,第三個(gè)參數(shù)具體是做什麼用的我也還沒搞明白,不過一般都沒有用過,等有時(shí)間了再慢慢兒來研究研究。

HTMLPurifier的配置屬性可以透過其網(wǎng)站查詢到

配置屬性選擇

HTMLPurifier的設(shè)定檔主要是兩層分類,大類分Attr(屬性)、HTML (html標(biāo)籤)、AutoFormat(自動(dòng)格式)、CSS(css配置)、Output(輸出配置)…小類選擇透過大類名稱加.加小類名稱可以完成。

例如我要配置允許的html標(biāo)籤,比如說p標(biāo)籤和a標(biāo)籤,可以如下配置

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

屬性值的選擇

在官方文件中,點(diǎn)擊一個(gè)屬性後,可以看到這個(gè)屬性的解釋,會(huì)告訴你這個(gè)屬性的值的類型(Type)是String、Int、Array、Boolen……

#接著還會(huì)告訴你這個(gè)屬性的預(yù)設(shè)值,例如是NULL還是true還是false等。這個(gè)值的格式就跟PHP的格式一樣的。

白名單過濾機(jī)制

HTMLPurifier使用了白名單過濾機(jī)制,只有被設(shè)定允許的才會(huì)通過檢驗(yàn)。

基本過濾範(fàn)例

a、過濾掉文字中的所有html標(biāo)籤

/**
 * 過濾掉所有html標(biāo)簽很簡(jiǎn)單,原因則在白名單機(jī)制完成
 */
$config->set('HTML.Allowed', '');

b、保留超連結(jié)標(biāo)籤a及其href連結(jié)位址屬性,並自動(dòng)新增target屬性值為'_blank'

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

c、自動(dòng)完成段落程式碼並清除掉無用的空白標(biāo)籤

// 讓文本自動(dòng)添加段落標(biāo)簽,前提是必須允許P標(biāo)簽的使用
$config->set('HTML.Allowed', 'p');
$config->set('AutoFormat.AutoParagraph', true);
// 清除空標(biāo)簽
$config->set('AutoFormat.RemoveEmpty', true);
……


免責(zé)聲明

本站所有資源皆由網(wǎng)友貢獻(xiàn)或各大下載網(wǎng)站轉(zhuǎn)載。請(qǐng)自行檢查軟體的完整性!本站所有資源僅供學(xué)習(xí)參考。請(qǐng)不要將它們用於商業(yè)目的。否則,一切後果都由您負(fù)責(zé)!如有侵權(quán),請(qǐng)聯(lián)絡(luò)我們刪除。聯(lián)絡(luò)方式:admin@php.cn

相關(guān)文章

使用Muditup 3 JS庫進(jìn)行動(dòng)畫過濾和分類 使用Muditup 3 JS庫進(jìn)行動(dòng)畫過濾和分類

17 Feb 2025

MixItUp 3:基於 CSS 動(dòng)畫的網(wǎng)頁元素篩選和排序利器 MixItUp 3 是一個(gè)強(qiáng)大的 JavaScript 庫,它利用 CSS 動(dòng)畫實(shí)現(xiàn)網(wǎng)頁元素的篩選和排序,非常適合用於整理內(nèi)容豐富的網(wǎng)站,例如作品集、相冊(cè)和博客等。 MixItUp 3 的核心功能: 無依賴性: MixItUp 3 不依賴任何其他庫,使用方便。 CSS 動(dòng)畫: 使用 CSS 動(dòng)畫實(shí)現(xiàn)流暢的篩選和排序效果。 高度可定制: 提供豐富的配置選項(xiàng),可以自定義動(dòng)畫效果、添加自定義類名、創(chuàng)建自定義篩選和排序按鈕等等。 跨瀏覽器

如何使用 hbm2ddl.auto 透過 Hibernate 自動(dòng)建立資料庫表? 如何使用 hbm2ddl.auto 透過 Hibernate 自動(dòng)建立資料庫表?

15 Dec 2024

使用 Hibernate 自動(dòng)建立/更新資料庫表格根據(jù)實(shí)體類別自動(dòng)建立或更新資料庫表格...

Django 查詢集可以按模型屬性過濾嗎? Django 查詢集可以按模型屬性過濾嗎?

17 Oct 2024

按模型屬性過濾 Django 查詢集:了解限制雖然 Django 查詢集提供了廣泛的過濾功能,但它們無法直接按模型屬性進(jìn)行過濾。屬性是模型類別和計(jì)算中定義的自訂屬性

為什麼要從 Python 中的「object」繼承:一個(gè)類別繼承問題 為什麼要從 Python 中的「object」繼承:一個(gè)類別繼承問題

24 Dec 2024

了解 Python 類別繼承在 Python 中,類別可以從其他類別繼承,這使它們能夠存取父類別的屬性並...

如何僅透過一次資料庫檢索 PHP/MySQL 中的分層類別資料? 如何僅透過一次資料庫檢索 PHP/MySQL 中的分層類別資料?

23 Oct 2024

本文介紹了一種在 PHP/MySQL 中使用鄰接清單模型儲(chǔ)存分層資料(例如類別和子類別)的方法。它提出了一種一次性資料檢索演算法,可以使用單一資料有效地獲取分層資料。

如何在 Linux 上建立和使用動(dòng)態(tài)共用 C 類別庫? 如何在 Linux 上建立和使用動(dòng)態(tài)共用 C 類別庫?

05 Dec 2024

在 Linux 上建立和使用動(dòng)態(tài)共用 C 類別庫建立共用類別庫要建立共用 C 類別庫,您可以依照...

See all articles