0x08 正則表達式
1.行定位符
^ 開始
$ 結尾
2.單詞定界符
\b 查找一個完整的單詞
\B 與\b相反
3.字符類
[] 單字符匹配
4.選擇字符
|
5.連字符
- [a-zA-Z]
6.排除字符
[^]
7.限定符
? 匹配前面的字符零次或一次
+ 匹配前面的字符一次或多次
* 匹配前面的字符零次或多次
{n,m} 匹配前面的字符[n,m]次
8.點號字符
. 匹配除換行符外任意一個字符
9.轉義字符
\ 匹配ip地址,[0-9]{1,3}(\.[0-9]{1,3}){3}
10.反斜線
顯示不可打印的字符
\a 警報,<BEL>
\b 退格,<BS>
\e Escape,<ESC>
\f 換頁符,<FF>
\n 換行符,<LF>
\r 回車符,<CR>
\t 水平製表符,<HT>
\xhh 十六進制代碼
\ddd 八進制代碼
\cx control-x,由x指名控制字符
預定義字符集
\d 任意一個十進制數字,相當於[0-9]
\D 任意一個非十進制數字
\s 任意一個空白字符,相當於[\f\n\r\t]
\S 任意一個非空白字符
\w 任意一個單詞字符,相當於[a-zA-Z0-9]
\W 任意一個非單詞字符
限定符
\b 單詞分界符
\B 非單詞分界符
\A 匹配待搜索文本的起始位置
\z 只匹配字符串的末尾,而不考慮任何換行符
\Z 匹配字符串的末尾位置,或者是在字符串末尾的換行符之前的位置
\G 當前匹配的起始位置
11.括號字符
改變限定符的作用範圍
分組
反向引用
12.模式修飾符
i 忽略大小寫模式
M 多文本模式,子串內部有多個換行符時,影響"^"和"$"的匹配
s 單文本模式,在此模式下,元字符點號(.)可以匹配換行符。其他模式不能匹配換行符
X 忽略空白字符
0x09 POSIX擴展正則表達式函數
1.ereg()函數和eregi()函數
bool ereg/eregi ( string pattern, string string [, array regs] )
# 在string中匹配pattern,若成功返回true,失敗返回false。子串存儲到regs數組中
# eregi不區分大小寫
2.ereg_replace()函數和eregi_replace()函數
string ereg_replace/eregi_replace ( string pattern, string replacement, string string )
# 在字符串string中匹配pattern。如果成功,則替換爲replacement。
# eregi_replace()不區分大小寫
3.split()函數和spliti()函數
array split/spliti ( string pattern, string string [, int limit] )
# 通過pattern分隔字符串string,limit代表分割上限數量
# spliti()不區分大小寫
0x10 PCRE兼容正則表達式函數
1.preg_grep()函數
array preg_grep ( string pattern, array input )
# 將數組中的每一個元素跟pattern進行匹配,將匹配命中的元素組成一個新數組並返回
2.preg_match()函數和preg_match_all()函數
int preg_match/preg_match_all ( string pattern, string subject [, array matches] )
# 在字符串subject中匹配pattern,返回命中次數。匹配結果存入matches中
# preg_match()匹配中一次即停止,preg_match_all()會匹配到最後,必須有參數matches
3.preg_quote()函數
string preg_quote ( string str [, string delimiter] )
# 將str中所有特殊字符進行轉義,delimiter爲自定義特殊字符
4.preg_replace()函數
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
# 在字符串subject中匹配pattern,將命中項替換爲replacement,limit爲替換次數
5.preg_replace_callback()函數
mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] )
# 與preg_replace()函數功能相同,replacement用函數callback替換,即可用函數結果作爲替換值
6.preg_split()函數
array preg_split ( string pattern, string subject [, int limit ] )
# 使用pattern分隔字符串subject,limit爲數組元素上限個數
0x11 數組
1.數組類型
數字索引數組、關聯數組
2.數組遍歷
foreach()、list()
foreach操作數組的一個備份,list函數僅能用於數字索引數組
3.字符串與數組的轉換
array explode(string separator, string string, [int limit])
將字符串string以seperator爲分隔符進行分隔,變成數組。
string implode(string glue, array pieces)
將數組pieces用glue連接起來。
4.數組元素個數
int count ( mixed array [, int mode])
5.查詢數組中的指定元素
mixed array_search ( mixed needle, array haystack [, bool strict])
#在數組haystack中搜索needle,strict檢查類型,若找到返回鍵名
6.獲取數組中最後一個元素
mixed array_pop(array array)
7.向數組中添加元素
int array_push ( array array, mixed var [, mixed ...])
#將var添加到array中
8.刪除數組中重複元素
array array_unique ( array array)
0x12 表單
1.創建表單
<form name="form_name" method="method" action="url" enctype="value" target="target_win"></form >
2.表單元素
輸入域標記
<input name="file_name" type="type_name">
text、password、file、image、radio、checkbox、submit、reset、button、hidden
選擇域標記
<select name="name" size="value" multiple>
<option value="value" selected>選項1</option>
<option value="value">選項2</option>
<option value="value">選項3</option>
</select>
文字域標記
<textarea name="name" rows=value cols=value value="value" warp="value">
…文本內容
</textarea>
3.表單傳輸方式
POST 不依賴於URL,不限制數據傳輸,後臺傳輸安全性高
GET 依賴於URL,限制數據傳輸大小,顯示URL+用戶傳遞的參數。
4.參數傳遞方法
$_POST[]、$_GET[]、$_SESSION[]
0x13 Cookie&Session
1.創建Cookie
bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])
#cookie變量名name;cookie變量值value;expire爲cookie失效時間單位爲秒。
#path爲cookie在domain下有效的範圍,默認是當前目錄;domain爲cookie有效的域名,儘量最小化。
#secure值是否僅通過HTTPS連接有效,1爲是,0爲否。
2.cookie的生命週期
若不設置過期時間,只有關閉瀏覽器時,cookie纔會消失。
cookie保存在內存中,不保存在磁盤上。
3.創建Session
bool session_start(void) ; #創建會話
$_SESSION['admin'] = 'admin'; #註冊會話,給變量賦值
if(!empty($_SESSION['admin'])) #判斷是否爲空
$a=$_SESSION['admin']; #將會話變量賦值給$a
4.Session緩存
string session_cache_limiter ( [string cache_limiter])
#使用
int session_cache_expire ( [int new_cache_expire])
#緩存單位爲分鐘
bool session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc)
<!--
參數 說明
session_open(save_path,session_name) 找到Session存儲地址,取出變量名稱
session_close() 不需要參數,關閉數據庫
session_read(key) 讀取Session鍵值,key對應session_id
session_write(key,data) 其中data對應設置的Session變量
session_destroy(key) 註銷Session對應Session鍵值
session_gc(expiry_time) 清除過期Session記錄
-->