您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何在php中利用parse_str將查詢的字符串解析到變量中,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
一、函數(shù)原型
void parse_str ( string str [, array &arr] )
二、版本兼容
PHP 3, PHP 4, PHP 5
三、函數(shù)基礎(chǔ)用法與實(shí)例
1. 解析字符串為變量
<?php parse_str("var1=jb51&var2=parse_str"); echo $var1.$var2; ?>
2. 解析字符串并將變量存儲(chǔ)到數(shù)組中
<?php parse_str("var1=jb51&var2=parse_str",$array); print_r($array); ?>
輸出:
Array ( [var1] => jb51 [var2] => parse_str )
說明:這種將變量存儲(chǔ)到數(shù)組中在PHP 4.0.3 才增加
3. 解析的字符串有空格
<?php parse_str("v ar1=jb51&var 2=parse_str",$array); print_r($array); ?>
輸出:
Array ( [v_ar1] => jb51 [var_2] => parse_str )
說明:直接將空格轉(zhuǎn)換為下劃線_
四、注意事項(xiàng)
1. 如果未設(shè)置 array 參數(shù),由該函數(shù)設(shè)置的變量將覆蓋已由同名變量。
2. php.ini 中的 magic_quotes_gpc 設(shè)置影響該函數(shù)的輸出。如果已啟用,那么在 parse_str() 解析之前,變量會(huì)被 addslashes() 轉(zhuǎn)換。
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ì)一直打開。
關(guān)于如何在php中利用parse_str將查詢的字符串解析到變量中就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。