6-7
讀出資料的安全性過濾
- 目的:當初存入時會希望完整存入,固有可能會存入一些危險語法(如果有的話),因此,從資料庫讀出資料時必須過濾一些可能會危害網站的語法。
- 一樣要先啟用文字過濾器:
$myts = MyTextSanitizer::getInstance();
- 根據資料量分為兩類,一種是大量文字類(例如textarea大量文字框或CKEditor編輯器的欄位),另一種則是一般資料,如姓名、數字...等。
- 呈現大量文字:
$myts->displayTarea($text, $html=0, $smiley=1, $xcode=1, $image=1, $br=1);
- (1) 「$text」就是要被處理之後呈現的文字。
- (2) 「$html」是否允許使用HTML語法,用所見即所得編輯器製作出來的請填1。
- (3) 「$smiley」是否轉換表情圖,預設為1,會將:) 這類的符號轉換為圖片。
- (4) 「$xcode」是否使用BBCode,如:[color=red]文字[/color]。
- (5) 「$image」是否允許在文字中使用圖片。若為0,圖片會以連結來顯示。
- (6) 「$br」是否要將「\n」換行符轉換為<br>,用所見即所得編輯器者請設為0。
- 呈現一般文字:
$myts->htmlSpecialChars($text, $quote_style=ENT_QUOTES, $charset= null, $double_encode=true);
- (1) 「$text」就是要被處理之後呈現的文字。
- (2) 「$quote_style」要處理的引號模式,「ENT_COMPAT」僅處理雙引號;「ENT_QUOTES」處理雙引號和單引號(預設);「ENT_NOQUOTES」不對任何引號進行處理。
- (3) 「$charset」轉換的預設編碼,通常使用預設值即可。
- (4) 「$double_encode」只有PHP 5.2.3之後才有效。若設為false,則不對現有的HTML實體做編碼的動作。