php對資料進行過濾輸出

2021-09-25 18:03:19 字數 1305 閱讀 1110

為了避免跨站指令碼攻擊、xss等安全問題,yii框架對輸出到檢視層的資料提供了一些方法供我們使用,例如 html::encode、htmlpurifier::process,研究了下yii框架的原始碼,將其抽取出來,作為乙個小組件,記起來,以後可以單獨使用:

1、首先是 html::encode ,是使用php的原生函式htmlspecialchars,我們跟著模仿乙個:

<?php 

class html

}

2、然後是htmlpurifier::process,引用了這個 htmlpurifier 包,我們先安裝起來,

composer require ezyang/htmlpurifier
然後原先的html類裡面,新增乙個靜態方法,這樣html類就變成了這樣:

<?php 

class html

public static function process($content, $config = null)

}

3、最後就是使用測試了,編寫乙個index.php

目錄結構如下:

$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建立行式報表儘管方便,可是實際的...