欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP urlencode()和urldecode()函数详解

程序员文章站 2022-03-10 11:44:37
PHP urlencode()和urldecode()的使用 ......

定义

urlencode - 将传入的字符串进行url编码

描述

urlencode ( string $str ) : string

其返回的字符串中除了 —_. 和数字字母外,所有其他字符 non-alphanumeric 都被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。
此编码与 www 表单 post 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。

此函数便于将字符串编码并将其用于url的请求参数,同时还便于将变量编码后传递给下一页。

urlencode是指针对网页url中的中文字符的一种编码转化方式,一般有两种,分别基于gb2312和utf-8,如下

中文 -> gb2312的encode -> %d6%d0%ce%c4
中文 -> utf-8的encode -> %e4%b8%ad%e6%96%87

示例

//gb2312的encode
echo urlencode("中文-_. ")."\n"; //%d6%d0%ce%c4-_.+
echo urldecode("%d6%d0%ce%c4-_. ")."\n"; //中文-_.
echo rawurlencode("中文-_. ")."\n"; //%d6%d0%ce%c4-_.%20
echo rawurldecode("%d6%d0%ce%c4-_. ")."\n"; //中文-_.

urlencode和rawurlencode的区别

urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)


urldecode

urldecode - 解码已编码的 url 字符串

urldecode ( string $str ) : string

urldecode()函数与urlencode()函数原理相反,用于解码已编码的 url 字符串,其原理就是把十六进制字符串转换为中文字符。
decodes any %## encoding in the given string.