《PHP學(xué)習(xí):php使用parse_str實(shí)現(xiàn)查詢字符串解析到變量中的方法》要點(diǎn):
本文介紹了PHP學(xué)習(xí):php使用parse_str實(shí)現(xiàn)查詢字符串解析到變量中的方法,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
本文實(shí)例講述了php使用parse_str實(shí)現(xiàn)查詢字符串解析到變量中的方法.分享給大家供大家參考,具體如下:PHP教程
parse_str()函數(shù)可實(shí)現(xiàn)把字符串解析到變量中,這意味著實(shí)現(xiàn)了字符串與變量之間的一種轉(zhuǎn)換機(jī)制,在與客戶端數(shù)據(jù)傳遞的過程中,數(shù)據(jù)是通過字符串的形式傳遞,如GET請(qǐng)求,然后在服務(wù)器端通過$_GET/$_POST等全局變量實(shí)現(xiàn)字符串與變量的轉(zhuǎn)換,如:/?index.php?var1=1&var2=2,請(qǐng)求后服務(wù)端可使用$_GET['var1']的方式獲取var1=1&var2=2這一段字符串轉(zhuǎn)換成變量.parse_str()函數(shù)可實(shí)現(xiàn)用樣的功能,使用parse_str()函數(shù)解析$_SERVER['QUERY_STRING']的值,就可以直接實(shí)現(xiàn)字符串與變量的轉(zhuǎn)換,如$var1.PHP教程
一、函數(shù)原型PHP教程
void parse_str ( string str [, array &arr] )
PHP教程
二、版本兼容PHP教程
PHP 3, PHP 4, PHP 5PHP教程
三、函數(shù)基礎(chǔ)用法與實(shí)例PHP教程
1. 解析字符串為變量PHP教程
<?php parse_str("var1=jb51&var2=parse_str"); echo $var1.$var2; ?>
2. 解析字符串并將變量存儲(chǔ)到數(shù)組中PHP教程
<?php parse_str("var1=jb51&var2=parse_str",$array); print_r($array); ?>
輸出:PHP教程
Array ( [var1] => jb51 [var2] => parse_str )
說明:這種將變量存儲(chǔ)到數(shù)組中在PHP 4.0.3 才增加PHP教程
3. 解析的字符串有空格PHP教程
<?php parse_str("v ar1=jb51&var 2=parse_str",$array); print_r($array); ?>
輸出:PHP教程
Array ( [v_ar1] => jb51 [var_2] => parse_str )
說明:直接將空格轉(zhuǎn)換為下劃線_PHP教程
四、注意事項(xiàng)PHP教程
1. 如果未設(shè)置 array 參數(shù),由該函數(shù)設(shè)置的變量將覆蓋已由同名變量.PHP教程
2. php.ini 中的 magic_quotes_gpc 設(shè)置影響該函數(shù)的輸出.如果已啟用,那么在 parse_str() 解析之前,變量會(huì)被 addslashes() 轉(zhuǎn)換.PHP教程
3. parse_str() 函數(shù)在處理參數(shù)時(shí)存在漏洞,攻擊者可以利用這個(gè)漏洞啟用register_globals,從而進(jìn)一步利用其他PHP腳本中的漏洞.如果僅以一個(gè)參數(shù)調(diào)用 parse_str()的話,該函數(shù)會(huì)認(rèn)為該參數(shù)是通過URL傳送的請(qǐng)求字符串那樣解析所提供的字符串,但外部攻擊者可以在調(diào)用 parse_str()期間發(fā)送很多請(qǐng)求變量來觸發(fā)memory_limit請(qǐng)求終止.如果在調(diào)用parse_str()期間執(zhí)行了請(qǐng)求關(guān)閉的話,則在相關(guān)webserver進(jìn)程的其余生命周期期間register_globals標(biāo)簽會(huì)一直打開.PHP教程
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php排序算法總結(jié)》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》及《php常見數(shù)據(jù)庫操作技巧匯總》PHP教程
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助.PHP教程
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/1739.html