溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在php中利用parse_str將查詢的字符串解析到變量中

發(fā)布時(shí)間:2021-01-14 15:21:32 來源:億速云 閱讀:183 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(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ò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI