關於preg_replace函式的問題講解
http://www.jb51.net/article/8676.htm
請問下那此句語句的作用。給我解釋一下其中的“?”,“e”,”i”,”s”符號分別是什麼意思,和它們起到了什麼作用。還有就是除了”/eis”外還有其他什麼模式了嗎?
如果有相關的學習資料可以給我嗎?謝謝,各位的幫助!謝謝。
$post=preg_replace(“//[html/](.+?)/[//html/]/eis”,”htmlcode(`//1`)”,$post);
修飾符:
在正則表示式裡面的修飾符可以改變正則的很多特性,使得正則表示式更加適合你的需要(注意:修飾符對於大小寫是敏感的,這意味著”e”並不等於”E”)。正則表示式裡面的修飾符如下:
i :如果在修飾符中加上”i”,則正則將會取消大小寫敏感性,即”a”和”A” 是一樣的。
m:預設的正則開始”^”和結束”$”只是對於正則字串如果在修飾符中加上”m”,那麼開始和結束將會指字串的每一行:每一行的開頭就是”^”,結尾就是”$”。
s:如果在修飾符中加入”s”,那麼預設的”.”代表除了換行符以外的任何字元將會變成任意字元,也就是包括換行符!
x:如果加上該修飾符,表示式中的空白字元將會被忽略,除非它已經被轉義。
e:本修飾符僅僅對於replacement有用,代表在replacement中作為PHP程式碼。
A:如果使用這個修飾符,那麼表示式必須是匹配的字串中的開頭部分。比如說”/a/A”匹配”abcd”。
E:與”m”相反,如果使用這個修飾符,那麼”$”將匹配絕對字串的結尾,而不是換行符前面,預設就開啟了這個模式。
U:和問號的作用差不多,用於設定”貪婪模式”。
?表單非貪婪匹配,即儘可能少的匹配
#############
##總結模型###
#############
1.直接在preg_replace第2個變數執行的模式:
echo preg_replace(“/test/e”,$h,”jutst test”);
?>
提交http://127.0.0.1/test/11/preg.php?h=phpinfo()
例項如:phpbb的viewtopic.php變數$highliht_match提交php程式碼執行漏洞
2.通過//1[或者//n]提取第3個變數裡的php程式碼並執行的模式:
echo preg_replace(“//s*/[php/](.+?)/[//php/]/s*/ies”, “//1“, $h);
?>
提交:http://127.0.0.1/test/11/preg.php?h=[php]phpinfo()[/php]
參考:
r57的exp:http://www.milw0rm.com/exploits/1720
http://superhei.blogbus.com/logs/2398452.html
相關文章
- 關於scanf函式的問題函式
- 關於函式索引的問題?函式索引
- 關於解決博弈論問題的SG函式函式
- 關於cuda中的函式問題函式
- 關於php解構函式的一個有趣問題PHP函式
- 關於Swift中的泛函式find的問題Swift函式
- 關於Hash 函式 雜湊索引表 解決位置衝突的問題函式索引
- 關於使用toFixed()函式時報錯”toFixed() is not a function”的問題函式Function
- 關於執行緒插入函式如何用的問題執行緒函式
- (求教)關於js函式按值、引用傳遞的問題JS函式
- 關於建構函式與解構函式的分享函式
- 關於C#中建構函式的繼承的問題C#函式繼承
- 關於Python中函式過載問題的思考(原創)Python函式
- 關於python3.7中 scipy模組輸出函式出錯問題的解決Python函式
- 關於Java建構函式(Constructor)的常見問題總結Java函式Struct
- IOCP 系列函式講解函式
- [20190918]關於函式索引問題.txt函式索引
- 關於分散式事務帶來的問題及解決方案分散式
- 函式索引的問題函式索引
- 關於“建構函式”中的幾個小問題,也許面試會問到哦~函式面試
- 關於count函式的理解函式
- 關於lag函式的用法函式
- JavaScript 中函式節流和函式去抖的講解JavaScript函式
- 關於onethink 目錄,檔案讀寫檢測函式中的問題函式
- 關於C++中虛解構函式的一些問題——未載入 wntdll.padbC++函式
- 解決Hexo關於圖片的問題Hexo
- 關於解決問題的幾個段位
- 關於解壓zip檔案的問題
- 函式呼叫棧的問題函式
- itoa函式的奇怪問題函式
- 也談箭頭函式的 this 指向問題及相關函式
- python的四大函式講解Python函式
- 詳細講解函式呼叫原理函式
- 常用分析函式開窗講解函式
- jquery的get()函式快取問題解決方案jQuery函式快取
- Oracle中關於函式的使用Oracle函式
- 關於qt中的tr()函式QT函式
- 關於Oracle取整的函式Oracle函式