编码地址

时间:2018-08-06 21:25:45

标签: php urlencode

我有以下地址:

  

马萨诸塞州波士顿市大街123号,02137

我需要一个地址来通过URL保持完整,因此我尝试了以下操作:

echo urlencode($address);
echo rawurlencode($address);

问题是逗号一直被转换成&符! ︎

如何防止(客户端?PHP?在此我不确定)将逗号转换成&符吗​​?

HTTP查询为address,将发生以下情况:

print_r($_GET);

收益:

  

数组(

     

[地址] => 123大街

     

[波士顿马萨诸塞州] =>

     

[02137] =>

     

1 个答案:

答案 0 :(得分:1)

如果将它们转换为“&”号,则说明出现了严重错误,因为urlencoderawurlencode都将逗号转换为%2C

使用123 Main Street, Boston Massachusetts, 02137对字符串rawurlencode进行编码
应该给您123%20Main%20Street%2C%20Boston%20Massachusetts%2C%2002137

从这里开始,只需从URL读取时使用rawurldecode即可将编码后的字符串转换回原始字符串:

$address = "123 Main Street, Boston Massachusetts, 02137";
echo $address; // 123 Main Street, Boston Massachusetts, 02137

$encoded = rawurlencode($address);
echo $encoded; // 123%20Main%20Street%2C%20Boston%20Massachusetts%2C%2002137

$decoded = rawurldecode($encoded);
echo $decoded; // 123 Main Street, Boston Massachusetts, 02137

可以在 here 上看到它。