本文目錄一覽:
php中為什麼filter
Filter是過濾器用於驗證和過濾來自非安全來源的數據,比如用戶的輸入。驗證和過濾用戶輸入或自定義數據是任何 Web 應用程序的重要組成部分。
函數和過濾器
如需過濾變量,請使用下面的過濾器函數之一:
filter_var() – 通過一個指定的過濾器來過濾單一的變量
filter_var_array() – 通過相同的或不同的過濾器來過濾多個變量
filter_input – 獲取一個輸入變量,並對它進行過濾
filter_input_array – 獲取多個輸入變量,並通過相同的或不同的過濾器對它們進行過濾
在下面的例子中,我們用 filter_var() 函數驗證了一個整數:
?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo(“Integer is not valid”);
}
else
{
echo(“Integer is valid”);
}
?
php中數據過濾的問題
我來解釋一下吧
preg_replace(‘/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/’,”,$string);
去掉控制字符,你google一下ascii table就知道了,php裏面 – 代表範圍,比如\x00-\x08指的是ASCII代碼在\x00到\x08範圍的字符,\x0A和\x0D代表回車換行,所以沒包含在這個裏面,否則直接\x00-\x1F了,
$string = str_replace(array(“\0″,”%00″,”\r”),”,$string);
\0表示ASCII 0x00的字符,通常作為字符串結束標誌
$string = preg_replace(“/(?!(#[0-9]+|[a-z]+);)/si”,”,$string);
我們知道HTML裏面可以用xx;來對一些字符進行編碼,比如 (空格), ߷ Unicode字符等,A(?!B) 表示的是A後面不是B,所以作者想保留 ߷類似的 HTML編碼字符,去掉其他的問題字符,比如 123; nbsp;
str_replace(array(“%3C”,”),”,$string);
第一個”多餘吧,%3C是編碼以後的 , 一般用在URL編碼里
str_replace(array(“%3E”,”),”,$string);
str_replace(array(‘”‘,”‘”,”\t”,’ ‘),array(‘”‘,”‘”,”,”),$string);
略過
有問題再追問
PHP怎麼過濾非法函數?
如果要達到你的目的,其實很簡單,直接用htmlspecialchars函數,比如以下的代碼:
$new = htmlspecialchars(“script href=’test’ /script”);
echo $new;
其中的:script href=’test’ /script
最終會輸出:script href=’test’ /script
也就是會把轉變為 等等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187029.html