urlencode和urldecode有什么必要性?

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

示例 #1 urlencode() 例子


$userinput = 'Data123!@-_ +';
echo "UserInput: $userinput\n";
echo ', urlencode($userinput), '">';
?>

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

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


$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 '. htmlentities($query_string) . '">';
?>

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

示例 #1 urldecode() 示例


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

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

你可能感兴趣的:(php,php)