搜索

首页  >  问答  >  正文

PHP URL编码/解码

<p>我使用了这个问题中被接受的解决方案来对id进行加密,例如在<strong>/index.php?id=3</strong>中。问题是我无法将加密后的值作为url发送,例如<strong>/index.php?id=dsf13f3343f23/23=</strong>。因为有时候url中会有奇怪的字符,例如注意末尾的<code>=</code>符号</p>
P粉512363233P粉512363233510 天前614

全部回复(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
  • 取消回复