require_once '/path/to/HTMLPurifier.auto.php';
根據(jù)ThinkPHP的規(guī)范,對(duì)于第三方擴(kuò)展,不符合ThinkPHP開發(fā)規(guī)范的,需要將HTMLPurifier放入到Library/Vendor目錄中。然后我們可以在方法中通過下面方法將HTMLPurifier.auto.php引入到框架程序中:
vendor('htmlpurifier.library.HTMLPurifier#auto');
不過這里我使用的ThinkPHP 3.2.1,發(fā)現(xiàn)這種方法只能使用在函數(shù)中,對(duì)于控制器類中這樣引入是無法正確識(shí)別的。也就是說,我們只能在common/function.php文件中引用。
創(chuàng)建HTMLPurifier對(duì)象并實(shí)現(xiàn)對(duì)富文本的過濾
$config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $clean_html = $purifier->purify($dirty_html);
如何對(duì)HTMLPurifer的過濾器進(jìn)行配置
要使用HTMLPurifier,重點(diǎn)還是在如何進(jìn)行配置。對(duì)于上面的程序,我們通過createDefault()方法創(chuàng)建了一個(gè)默認(rèn)的配置對(duì)象。我們?nèi)绻薷呐渲玫脑?,可以通過set方法來進(jìn)行配置設(shè)置,方法如下:
$config->set('config_object', value, a=null);
第一個(gè)參數(shù)就是需要配置的屬性,第二個(gè)參數(shù)就是屬性的值,第三個(gè)參數(shù)具體是做什么用的我也還沒有搞明白,不過一般都沒有用過,等有時(shí)間了再慢慢兒來研究研究。
HTMLPurifier的配置屬性可以通過其網(wǎng)站查詢到
配置屬性選擇
HTMLPurifier的配置文檔主要是兩級(jí)分類,大類分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è)屬性后,可以看到對(duì)這個(gè)屬性的解釋,會(huì)告訴你這個(gè)屬性的值的類型(Type)是String、Int、Array、Boolen……
接著還會(huì)告訴你這個(gè)屬性的默認(rèn)值,比如是NULL還是true還是false等。這個(gè)值的格式就跟PHP的格式一樣的。
白名單過濾機(jī)制
HTMLPurifier使用了白名單過濾機(jī)制,只有被設(shè)置允許的才會(huì)通過檢驗(yàn)。
基本過濾事例
a、過濾掉文本中的所有html標(biāo)簽
/** * 過濾掉所有html標(biāo)簽很簡(jiǎn)單,原因則在白名單機(jī)制完成 */ $config->set('HTML.Allowed', '');
b、保留超鏈接標(biāo)簽a及其href鏈接地址屬性,并自動(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); ……
本站所有資源均由網(wǎng)友貢獻(xiàn)或各大下載網(wǎng)站轉(zhuǎn)載。請(qǐng)自行檢查軟件的完整性!本站所有資源僅供學(xué)習(xí)參考。請(qǐng)不要將它們用于商業(yè)目的。否則,一切后果由您負(fù)責(zé)!如有侵權(quán),請(qǐng)聯(lián)系我們刪除。聯(lián)系方式:admin@php.cn
相關(guān)文章

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)建自定義篩選和排序按鈕等等。 跨瀏覽器

18 Mar 2025
肯德·UI(Kendo UI)可以通過一個(gè)大型組件庫將其從基本想法轉(zhuǎn)變?yōu)槌墒斓膽?yīng)用程序。我們對(duì)100多個(gè)組成部分進(jìn)行了很好的交談

15 Dec 2024
使用 Hibernate 自動(dòng)創(chuàng)建/更新數(shù)據(jù)庫表根據(jù)實(shí)體類自動(dòng)創(chuàng)建或更新數(shù)據(jù)庫表...

25 Feb 2025
本文演示了如何用Microsoft Excel中的列,行或水平過濾數(shù)據(jù)。它提供了有關(guān)過濾不同類型數(shù)據(jù)的全面說明,包括愛好(文本),預(yù)算(數(shù)字)以及名稱或描述(TE)

17 Feb 2025
JavaScript 的多功能性:面向?qū)ο蟆⒚钍胶秃瘮?shù)式編程 JavaScript 的強(qiáng)大之處在于其多功能性,它支持面向?qū)ο缶幊?、命令式編程和函?shù)式編程。開發(fā)者可以根據(jù)項(xiàng)目需求和團(tuán)隊(duì)偏好靈活切換編程范式。 ES5 引入了 map、reduce 和 filter 等原生數(shù)組方法,極大地方便了函數(shù)式編程。其中,filter 方法能夠遍歷數(shù)組中的每個(gè)元素,根據(jù)指定的測(cè)試條件判斷是否將其添加到新的數(shù)組中。 使用 filter 方法簡(jiǎn)化代碼 filter 方法使代碼更簡(jiǎn)潔清晰。它遍歷數(shù)組中的每個(gè)元素,并

13 Aug 2025
理解WordPress的action和filter優(yōu)先級(jí),其實(shí)就是在搞清楚“什么時(shí)候該做什么事”。在WordPress開發(fā)中,action和filter是鉤子(hook)的兩種類型,它們?cè)试S你在特定時(shí)機(jī)插入自己的代碼。而優(yōu)先級(jí)(priority)決定了這些鉤子的執(zhí)行順序。默認(rèn)情況下,如果你不指定priority,它會(huì)使用默認(rèn)值10。但當(dāng)你需要控制多個(gè)鉤子之間的執(zhí)行先后時(shí),priority就變得很重要了。Action和Filter的基本區(qū)別Action:是在某個(gè)事件發(fā)生時(shí)執(zhí)


熱門工具標(biāo)簽

熱工具

50個(gè)優(yōu)秀經(jīng)典PHP算法大集合
經(jīng)典PHP算法,學(xué)習(xí)優(yōu)秀的思想 , 開拓思維

依賴注入容器的PHP庫
依賴注入容器的PHP庫

小巧的優(yōu)化圖片的PHP庫
小巧的優(yōu)化圖片的PHP庫
