php 中parse_str實現查詢字串解析到變數中_PHP教程

來源:互聯網
上載者:User
PHP內建函數研究系列第四期,採用PHP函數parse_str實現查詢字串解析到變數中,主要討論parse_str()函數的作用和用法。

parse_str()函數可實現把字串解析到變數中,這意味著實現了字串與變數之間的一種轉換機制,在與用戶端資料傳遞的過程中,資料是通過字串的形式傳遞,如GET請求,然後在伺服器端通過$_GET/$_POST等全域變數實現字串與變數的轉換,如:http://www.liuhui.info/?index.php?var1=1&var2=2,請求後服務端可使用$_GET['var1']的方式擷取var1=1&var2=2這一段字串轉換成變數。parse_str()函數可實現用樣的功能,使用parse_str()函數解析$_SERVER['QUERY_STRING']的值,就可以直接實現字串與變數的轉換,如$var1。

一,函數原型

代碼如下 複製代碼
void parse_str ( string str [, array &arr] )

二,版本相容
PHP 3, PHP 4, PHP 5

三,函數基礎用法與執行個體
1,解析字串為變數

代碼如下 複製代碼

parse_str("var1=liuhui&var2=parse_str");
echo $var1.$var2;
?>


2,解析字串並將變數儲存到數組中

代碼如下 複製代碼

parse_str("var1=liuhui&var2=parse_str",$array);
print_r($array);
?>


輸出:Array ( [var1] => liuhui [var2] => parse_str )

說明:這種將變數儲存到數組中在PHP 4.0.3 才增加

3,解析的字串有空格

代碼如下 複製代碼

parse_str("v ar1=liuhui&var 2=parse_str",$array);
print_r($array);
?>

輸出:Array ( [v_ar1] => liuhui [var_2] => parse_str )

說明:直接將空格轉換為底線_

四,注意事項
1,如果未設定 array 參數,由該函數設定的變數將覆蓋已由同名變數。
2,php.ini 中的 magic_quotes_gpc 設定影響該函數的輸出。如果已啟用,那麼在 parse_str() 解析之前,變數會被 addslashes() 轉換。
3,parse_str() 函數在處理參數時存在漏洞,攻擊者可以利用這個漏洞啟用register_globals,從而進一步利用其他PHP指令碼中的漏洞。如果僅以一個參數調用 parse_str()的話,該函數會認為該參數是通過URL傳送的請求字串那樣解析所提供的字串,但外部攻擊者可以在調用 parse_str()期間發送很多請求變數來觸發memory_limit請求終止。如果在調用parse_str()期間執行了請求關閉的話,則在相 關webserver進程的其餘生命週期期間register_globals標籤會一直開啟。


http://www.bkjia.com/PHPjc/445318.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445318.htmlTechArticlePHP內建函數研究系列第四期,採用PHP函數parse_str實現查詢字串解析到變數中,主要討論parse_str()函數的作用和用法。 parse_str()函數可實現把...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.