當前位置:首頁 » 編程語言 » php數據過濾

php數據過濾

發布時間: 2022-08-07 16:46:29

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裡面可以用&#xxx;來對一些字元進行編碼,比如 (空格), ߷ 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數組的重復值如何過濾掉

array_unique() 函數移除數組中的重復的值,並返回結果數組。
當幾個數組元素的值相等時,只保留第一個元素,其他的元素被刪除。
返回的數組中鍵名不變。

array_unique() 先將值作為字元串排序,然後對每個值只保留第一個遇到的鍵名,接著忽略所有後面的鍵名。這並不意味著在未排序的 array 中同一個值的第一個出現的鍵名會被保留。

③ PHP開發介面響應數據null怎麼過濾

array_filter是只能去除掉一維的數組的null

function null_filter($arr)
{
foreach($arr as $key=>&$val) {
if(is_array($val)) {
$val = null_filter($val);
} else {
if($val === null){
unset($arr[$key]);
}
}
}
return $arr;
}
有現成的函數,默認可以過濾掉所有 ""、null、false如果單獨只需要過濾掉null,那麼類似如下代碼寫一個回調函數

function delete_null($vo){
if ($vo==null){
return false;
}
return true;
}
print_r(array_filter(array("aaa","bbb",null,"ccc"),"delete_null"));

④ php字元串過濾

$str = preg_replace("/^.+=(.+)$/", "新內容\\1", $str); //過濾等於號前面的所有字元串(包括等於號)

$str = preg_replace("/^(.+)=.+$/", "\\1"."新內容", $str); //過濾等於號後面的所有字元串(包括等於號)

⑤ php為什麼要過濾參數

主要是防止sql注入

舉例來說

如果$_GET['pwd']是你接受的參數
那麼你不處理的話
如何我$_GET['pwd']裡面是"'or'1";你的sql就無效了或者寫刪表語句"';drop····"
mysql_query("select*from表名wherepwd='$_GET[pwd]'");

還有就是數據本身可能不合法 如何 要int 你給的是string

⑥ PHP 過濾函數有哪些

①常用的安全函數:

mysql_real_escape_string()

addslashes()

②這些函數的作用:

mysql_real_escape_string()和addslashes()函數都是對數據中的
單引號、雙引號進行轉義!也就是防止sql注入!
但是mysql_real_escape_string()考慮了字元集,更加的安全一些!
經過查閱相關的資料,可以得出一個結論:當前的字元集是單位元組的話,這兩個函數作用相同,都可以起到轉義過濾的作用,但是,有誰會只是用單位元組呢?尤其是utf8越來越廣泛的被使用到!

③函數的用法:

在了解mysql_real_escape_string()和addslashes()這兩個函數的用法的時候,我們必須先了解另外兩個函數的含義!

get_magic_quotes_gpc()和get_magic_quotes_runtime(),我們來比較一下兩個函數的異同:

相同:
a、兩者都是用來獲取php.ini配置文件的配置情況的!當開啟的時候返回1,關閉的時候返回0!

b、當開啟的時候,都會對指定范圍內的數據進行轉義過濾!

⑦ php中過濾數組中的某個值

<?php
$bb=array('a');
$aa=array('a','b','c','d','e','f');
$cc=array_diff($aa,$bb);
print_r($cc);
?>

array_diff 返回2個數組的差集,數組元素多的放前面

⑧ php怎麼過濾

使用單獨一個模塊,這個模塊負責所有的安全處理。

這個模塊被包含在所有公開的 PHP 腳本的最前端(或者非常靠前的部分)。

參考下面的腳本security.inc

<?php
switch($_POST['form'])
{
case'login':
$allowed=array();
$allowed[]='form';
$allowed[]='username';
$allowed[]='password';
$sent=array_keys($_POST);
if($allowed==$sent)
{
include'/inc/logic/process.inc';
}
break;
}
?>

⑨ php中如何過濾用戶的輸入麻煩告訴我

可以採用以下幾點措施。
(1)在用戶數據進入資料庫之前使用addslashes()函數過濾,可以進行一些字元的轉義,並過濾掉可能引起資料庫問題的字元。可以使用stripslashes()將數據返回到原始形式。
(2)在php.infi中開啟magic_quotes_gpc和magic_quotes_runtime指令。它們可以自動的添加和過濾斜杠,前者主要用於格式化GET,POST,和cookie變數,後者用於過濾進出資料庫的數據。
(3)當在system()或者exex()函數中使用用戶輸入數據作為參數時,必須使用escapeshellcmd()。用來避免懷有惡意的用戶強迫系統運行某些命令。
(4)可以使用stip_tags()從一個字元串中去掉HTML和PHP標記,這樣可以避免用戶將惡意節本植入到用戶的數據中。
(5)可以使用htmlspecialchars(),可以將字元專程它們的HTML等價實體。例如,<將被轉換成&lt; ,該函數可以將任何腳本轉換成無害的字元。
總之,在使用用戶的數據時,一定要小心,原則即是不要相信用戶輸入的任何數據,必須要進行過濾和轉換。

熱點內容
如何配置全局地址池視頻 發布:2022-10-05 03:08:33 瀏覽:826
為什麼安卓機沒有來電閃光 發布:2022-10-05 03:02:01 瀏覽:23
補丁解壓到哪裡 發布:2022-10-05 02:52:11 瀏覽:959
新裝寬頻密碼多少合適 發布:2022-10-05 02:52:05 瀏覽:296
oraclesql文件夾 發布:2022-10-05 02:49:23 瀏覽:339
加密博客 發布:2022-10-05 02:49:15 瀏覽:610
單幅存儲 發布:2022-10-05 02:48:05 瀏覽:266
沒有id密碼怎麼注銷 發布:2022-10-05 02:47:25 瀏覽:163
monkeyrunner腳本錄制 發布:2022-10-05 02:46:00 瀏覽:761
python中與的用法 發布:2022-10-05 02:41:03 瀏覽:110