為了避免跨站指令碼攻擊、xss等安全問題,yii框架對輸出到檢視層的資料提供了一些方法供我們使用,例如 html::encode、htmlpurifier::process,研究了下yii框架的原始碼,將其抽取出來,作為乙個小組件,記起來,以後可以單獨使用:
1、首先是 html::encode ,是使用php的原生函式htmlspecialchars,我們跟著模仿乙個:
2、然後是htmlpurifier::process,引用了這個 htmlpurifier 包,我們先安裝起來,<?php
class html
}
composer require ezyang/htmlpurifier
然後原先的html類裡面,新增乙個靜態方法,這樣html類就變成了這樣:
3、最後就是使用測試了,編寫乙個index.php<?php
class html
public static function process($content, $config = null)
}
目錄結構如下:
$config->set('html.allowed', 'br,a[href|title]'); //只是保留標籤br和a,a標籤的屬性href和title保留
$clean_html = html::process($html, $config);
echo $clean_html;
ok,完畢,最後在說明下這兩個靜態方法的應用場景:
要顯示純文字資訊,那就使用: html::encode方法,
要顯示html內容,那就使用: html::process方法。
至於htmlpurifier包,更多的功能,可以檢視官方文件
對陣列物件進行過濾
使用的是filter regexp 和test 來實現過濾 filter item,index,arr new regexp pattern,attributes pattern 是乙個字串,指定了正規表示式的模式或其他正規表示式或需要尋找的值。attributes 是乙個可選的字串,包含屬性 g ...
python怎麼對數字進行過濾
本文例項總結了python 如果想從乙個含有數字,漢字,字母的列表中濾除僅含有數字的字元,當然可以採取正規表示式來完成,但是有點太麻煩了,因此可以採用乙個比較巧妙的方式 1 正規表示式解決 import re l u 小明 xiaohong 12 adf12 14 for i in range le...
行式報表 通過方法對資料進行過濾
關於scriptcase產品,請檢視 檢視相關功能 scriptcase提供了方便的方式直接建立行式報表,能夠一鍵生成簡單 直接的報表。scriptcase會依據資料機構,自己主動推斷其資料型別,而且生成對應格式的字段 如整形 字元型 型等等 使用scriptcase建立行式報表儘管方便,可是實際的...