php過濾函數
1. 請問php 中什麼函數可以過濾掉這個笑臉(>_<)符號
//把(>_<)過濾成空就行了。
<?php
echostr_replace("(>_<)","","Hello(>_<)!");
?>
2. php自定義一個函數用來過濾表單的。。比如說filter($_POST);調用filter函數的時
|function filter($array){
foreach($array as $k=>$v){
$array[$k]=htmlspecialchars(strip_tags($v));
$array[$k]=eregi('select|容insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$array[$k];
}
}
3. php用回調函數過濾數組中的單元
array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — 用回調函數過濾數組中的單元
1.說明
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次將 array 數組中的每個值傳遞到 callback 函數。如果 callback 函數返回 true,則 array 數組的當前值會被包含在返回的結果數組中。數組的鍵名保留不變。
2.參數
array
要循環的數組
callback
使用的回調函數
如果沒有提供 callback 函數, 將刪除 array 中所有等值為 false 的條目。更多信息見轉換為布爾值。
flag
決定callback接收的參數形式:
ARRAY_FILTER_USE_KEY - callback接受鍵名作為的唯一參數
ARRAY_FILTER_USE_BOTH - callback同時接受鍵名和鍵值
3.返回值
返回過濾後的數組。
更新日誌
版本 說明
5.6.0 添加可選的參數 flag,以及常量 ARRAY_FILTER_USE_KEY 和 ARRAY_FILTER_USE_BOTH。
範例
示例 #1 array_filter() 例子
1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
4. php如何過濾數組中的空元素使用那個函數
PHP中去除一個數組中的空元素方法很多,但是有一個系統函數是最方便的:
array array_filter ( array $array [, callable $callback )
此函數是依次將專 「$array 」 數組中的每個值屬傳遞到 「$callback」 函數。如果 「$callback」函數返回 TRUE ,則 「$array」 數組的當前值會被包含在返回的結果數組中。數組的鍵名保留不變。
如果只需去除數組中的空元素的話,"$callback"可以省略,例如數組:
$arr1=array( "a" => 1 , "b" => 0 , "c" => 3 , "d" => "" , "e" => 5 ,"f"=>array());
//執行
$arr1=array_filter ($arr1);
//結果為
array( "a" => 1 , "c" => 3 , "e" => 5 );
5. 看到很多php的安全過濾函數,經常把一些字元給替換掉,那用戶輸入的信息改變了不是很不好嗎求解
正像你所說的,安全過濾,為了安全而限制用戶的行為是必須的,你想想這專樣的限制針對的是什屬么用戶?是有意危害網站安全的用戶。舉幾個例子:
把標題中的html標簽過濾。因為標題一般都是純文本,1.html標簽會導致布局錯亂2.會包含危險script3.把引號等字元編碼為html實體並不會影響其最終顯示效果;
把正文中的<script>標簽過濾掉。因為普通用戶根本不會去執行script。所以我們一般有兩種做法:1.把script去掉,2.用html實體字元編碼標簽,這樣在顯示文章既可以顯示代碼段又不會執行代碼了;
過濾查詢參數的單引號。這是為了防止sql注入,一般有三種方法來實現:1.給引號添加反斜線2.去掉引號3.用sql的prepare動態綁定參數;
總之,不要信任任何的用戶輸入,限制還是為了更多的普通用戶更好的使用咱們的服務。
6. PHP提交自動過濾掉input框內的指定字元,怎麼寫呢
tr_replace() 函數使用一個字元串替換字元串中的另一些字元。
語法
str_replace(find,replace,string,count)
參數
描述
find 必需。規定要查找的值。
replace 必需。規定替換 find 中的值的值。
string 必需。規定被搜索的字元串。
count 可選。一個變數,對替換數進行計數。
提示和注釋
注釋:該函數對大小寫敏感。請使用 str_ireplace() 執行對大小寫不敏感的搜索。
注釋:該函數是二進制安全的。
例子
例子 1
<?php
echo str_replace("world","John","Hello world!");
?>
輸出:
Hello John!
例子 2
在本例中,我們將演示帶有數組和 count 變數的 str_replace() 函數:
<?php
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "Replacements: $i";
?>
輸出:
Array
(
[0] => blue
[1] => pink
[2] => green
[3] => yellow
)
Replacements: 1
例子 3
<?php
$find = array("Hello","world");
$replace = array("B");
$arr = array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
?>
輸出:
Array
(
[0] => B
[1] =>
[2] => !
)
7. php過濾指定字元的函數
explode — 使用一個字元串分割另一個字元串
array explode ( string $delimiter , string $string [, int $limit ] )
此函數返回由字元串組成的數組,每個元素專都是 string 的一個屬子串,它們被字元串 delimiter 作為邊界點分割出來。
<?php
//示例1
$pizza="";
$pieces=explode("",$pizza);
echo$pieces[0];//piece1
echo$pieces[1];//piece2
//示例2
$data="foo:*:1023:1000::/home/foo:/bin/sh";
list($user,$pass,$uid,$gid,$gecos,$home,$shell)=explode(":",$data);
echo$user;//foo
echo$pass;//*
?>
8. PHP怎麼過濾非法函數
靠,樓上的用的了那麼繁瑣嗎?php內值函數htmlspecialchars搞定<?php
$a = "<b>asf</b><script>alert('asdf')</script>哈內哈";
echo htmlspecialchars($a);
?>自己代碼看效果容.
9. 請問用PHP如何過濾空格內置函數或者正則表達式都可以
你是頭尾空格嗎?
用trim函數
如果是其他位置用str_replace(" ","","$array");
str_replace(find,replace,string,count)
參數 描述
find 必需。規定要查找的值。
replace 必需。規定替換版 find 中的值的權值。
string 必需。規定被搜索的字元串。
count 可選。一個變數,對替換數進行計數。
10. 求php防止被sql 注入攻擊的過濾用戶輸入內容的函數
functionclean($v){
//判斷magic_quotes_gpc是否復為打開
if(!get_magic_quotes_gpc()){
//進行制magic_quotes_gpc沒有打開的情況對提交數據的過濾
$v=addslashes($v);
}
//把'_'過濾掉
$v=str_replace("_","\_",$v);
//把'%'過濾掉
$v=str_replace("%","\%",$v);
//把'*'過濾掉
$v=str_replace("*","*",$v);
//回車轉換
$v=nl2br($v);
//html標記轉換
$v=htmlspecialchars($v);
return$v;
}
如果需要,還可以屏蔽一下危險字元,例如insert, update, delete等
//將update去掉
$v=str_replace("update","",$v);
最後,在拼裝sql語句時,用戶輸入的東西,全括在單引號內