非法字元php
㈠ 求教php驗證用戶名或密碼包含非法字元
例子代碼:
$user="sdafdsg";
if(preg_match("/^[0-9a-zA-Z]{4,21}$/",$user)){
echo"OK";
}
下面是PHP官方對preg_match函數的介紹
preg_match
(PHP 4, PHP 5)
preg_match—執行一個正則表達式匹配
說明
intpreg_match(string$pattern,string$subject[,array&$matches[,int$flags= 0[,int$offset= 0]]] )
搜索subject與pattern給定的正則表達式的一個匹配.
參數
pattern
要搜索的模式,字元串類型。
subject
輸入字元串。
matches
如果提供了參數matches,它將被填充為搜索結果。$matches[0]將包含完整模式匹配到的文本,$matches[1]將包含第一個捕獲子組匹配到的文本,以此類推。
flags
flags可以被設置為以下標記值:
PREG_OFFSET_CAPTURE
如果傳遞了這個標記,對於每一個出現的匹配返回時會附加字元串偏移量(相對於目標字元串的)。 注意:這會改變填充到matches參數的數組,使其每個元素成為一個由 第0個元素是匹配到的字元串,第1個元素是該匹配字元串 在目標字元串subject中的偏移量。
offset
通常,搜索從目標字元串的開始位置開始。可選參數offset用於 指定從目標字元串的某個未知開始搜索(單位是位元組)。
Note:
使用offset參數不同於向preg_match()傳遞按照位置通過substr($subject, $offset)截取目標字元串結果, 因為pattern可以包含斷言比如^,$或者(?<=x)。 比較:
<?php
$subject="abcdef";
$pattern='/^def/';
preg_match($pattern,$subject,$matches,PREG_OFFSET_CAPTURE,3);
print_r($matches);
?>
以上常式會輸出:
Array
(
)
當這個示例使用截取後傳遞時
<?php
$subject="abcdef";
$pattern='/^def/';
preg_match($pattern,substr($subject,3),$matches,PREG_OFFSET_CAPTURE);
print_r($matches);
?>
將會產生匹配
Array
(
[0] => Array
(
[0] => def
[1] => 0
)
)
返回值
preg_match()返回pattern的匹配次數。 它的值將是0次(不匹配)或1次,因為preg_match()在第一次匹配後 將會停止搜索。preg_match_all()不同於此,它會一直搜索subject直到到達結尾。 如果發生錯誤preg_match()返回FALSE。
更新日誌
版本
說明
5.3.6 如果offset比subject的長度還要大則返回FALSE。
5.2.2 命名子組可以接受(?<name>),(?'name')以及(?P<name>)語法。之前版本僅接受(?P<name>)語法。
4.3.3 增加了參數offset.
4.3.0 增加了標記PREG_OFFSET_CAPTURE。
4.3.0 增加了參數flags。
範例
Example #1 查找文本字元串"php"
<?php
//模式分隔符後的"i"標記這是一個大小寫不敏感的搜索
if(preg_match("/php/i",".")){
echo"Amatchwasfound.";
}else{
echo"Amatchwasnotfound.";
}
?>
㈡ 非法字元是什麼意思
比較通用的來說,這些字元會造成程序系統的崩潰,降低程序安全性,增加程序使用難度,這些字元可以叫非法字元。
其實有的非法字元是程序設計者在程序中定義的、或者可以避免的字元,有些字元在某些人眼裡可能非法,但是在另外一些高級設計師眼裡不一定就是非法。
不論asp,php,或者資料庫,或者平時使用的小軟體都會存在的。
非法字元串有:',*%()=
㈢ php中正規表達式匹配非法字元怎麼寫
非法字元你用htmlspecialchars不就搞定了,你是要匹配 尖括弧么?正在這樣寫/[<>]*/i
㈣ 什麼叫非法字元啊,,汗!
比較通用的來說,這些字元會造成程序系統的崩潰,降低程序安全性,增加程序使用難度,這些字元可以叫非法字元。
其實有的非法字元是程序設計者在程序中定義的、或者可以避免的字元,有些字元在某些人眼裡可能非法,但是在另外一些高級設計師眼裡不一定就是非法。
不論asp,php,或者資料庫,或者平時使用的小軟體都會出存在的。一般出現在編程中。
㈤ php怎麼過濾非法字元
htmlspecialchars函數, addslashes函數, stripcslashes函數等等其實有很多的.
㈥ php怎樣過濾非法字元防止sql注入
htmlspecialchars($_POST['欄位']),用這個函數就可以將一些特殊字元進行過濾轉義。你可以去看看這個函數的說明。
㈦ php 清除字元串非法字元
$str="x80x802018";
$code=array(
"x80",
" ",
);
$str=str_replace($code,'',$str);
var_mp($str);
可以這樣把特殊字元去掉,發現有什麼特殊字元,就加在code數組裡面,最後列印出來的長度就只有4了。
㈧ php.編寫一個過濾非法字元的函數,函數名為ShuChar,參數自定義,並給出調用函數測試程序
emo2.php
//創建函數,不要跟系統的內置函數重名
//函數有個特性,必須調用,才可以執行
//無參數表示()裡面是空的,無返回就是函數的程序里沒有 return
function functionName(){
echo '我是一個無參數無返回的函數。';
㈨ php過濾非法字元
幫你寫了個函數,要用時,調用一下就可以了,希望對你有幫組
function safe_string($str){ //過濾安全字元
$str=str_replace("'","",$str);
$str=str_replace('"',"",$str);
$str=str_replace(" ","$nbsp;",$str);
$str=str_replace("\n;","<br/>",$str);
$str=str_replace("<","<",$str);
$str=str_replace(">",">",$str);
$str=str_replace("\t"," ",$str);
$str=str_replace("\r","",$str);
$str=str_replace("/[\s\v]+/"," ",$str);
return $str;
}
㈩ .PHP文件在瀏覽器訪問是為什麼有這個非法字元�
編碼的問題,請嘗試換下編碼,比如UTF-8換成GBK,或者GBK換成UTF-8