urlencode和urldecode有什么必要性?

文章介绍了在使用HTTP协议时,POST和GET方法中数据传输的区别,以及urlencode和urldecode函数的作用,着重讲解了如何处理中文字符和特殊字符的编码与解码过程,以PHP为例给出示例。
摘要由CSDN通过智能技术生成

1、 使用post时数据会放到http报文中间传输过去,你是不需要做任何操作的。你可以认为自动encode了然后你读取的时候自动decode了。
2、当你使用get方法传输数据时,而且传输的数据中包含中文、符号等字符时,就需要用encode进行编码。
3、你手工encode的结果,再任意多次encode也不会发生变化了,你可以试试。
4、urlencode()编码:对字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位 十六进制数 ,空格则编码为加号(+)。
5、urldecode()解码:还原 URL 编码字符串。

示例 #1 urlencode() 例子

<?php
$userinput = 'Data123!@-_ +';
echo "UserInput: $userinput\n";
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

以上示例会输出:
UserInput: Data123!@-_ +

示例 #2 urlencode() 与 htmlentities() 例子

<?php
$foo = 'Data123!@-_ +';
$bar = "Not the same content as $foo";
echo "foo: $foo\n";
echo "bar: $bar\n";
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

以上示例会输出:
foo: Data123!@-_ +
bar: Not the same content as Data123!@-_ +

示例 #1 urldecode() 示例

<?php
$query = "my=apples&are=green+and+red";
foreach (explode('&', $query) as $chunk) {
    $param = explode("=", $chunk);
    if ($param) {
        printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
    }
}
?>

所以URLEncode就是将URL中特殊部分进行编码。URLDecoder就是对特殊部分进行解码。

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

net1193379199

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值