首頁  >  問答  >  主體

PHP URL編碼/解碼

<p>我使用了這個問題中被接受的解決方案來對id進行加密,例如在<strong>/index.php?id=3</strong>中。問題是我無法將加密後的值作為url發送,例如<strong>/index.php?id=dsf13f3343f23/23=</strong>。因為有時候url中會有奇怪的字符,例如注意末尾的<code>=</code>符號</p>
P粉512363233P粉512363233456 天前571

全部回覆(2)我來回復

  • P粉214176639

    P粉2141766392023-08-15 10:44:53

    使用PHP的urlencode()函數將值編碼後再放入URL中。

    此函數將「奇怪」的字符,如=,轉換為安全放入URL中的格式。你可以像這樣使用它:

    Header('Location: /index.php?id=' . urlencode($id))

    回覆
    0
  • P粉346326040

    P粉3463260402023-08-15 09:23:14

    在URL中傳遞的值中的奇怪字元應該使用#urlencode()來轉義。


    例如,以下程式碼片段:

    echo urlencode('dsf13f3343f23/23=');

    將給出:

    dsf13f3343f23%2F23%3D

    作為URL參數,這樣是有效的。


    如果你想要建立一個包含多個參數的查詢字串,請查看http_build_query()函數。

    例如:

    echo http_build_query(array(
        'id' => 'dsf13f3343f23/23=',
        'a' => 'plop',
        'b' => '$^@test', 
    ));

    將給出:

    id=dsf13f3343f23%2F23%3D&a=plop&b=%24%5E%40test

    這個函數會自動處理轉義和參數的拼接;-)

    回覆
    0
  • 取消回覆