有角度的括号在PHP中从URL中转义

时间:2013-04-30 00:05:38

标签: php url curl

我正在尝试调用接收邮政编码的USPS API并返回包含给定邮政编码的城市名称的XML。

以下是他们需要的网址:

http://production.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup 
&XML=<CityStateLookupRequest USERID="xxxxxxx"><ZipCode ID= "0"> 
<Zip5>90210</Zip5></ZipCode></CityStateLookupRequest> 

在我的PHP文件中,当我回显上面的URL时,这就是我得到的:

http://production.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=90007

缺少网址的所有XML部分。我需要从URL获取curl数据。

任何人都知道我可能缺少什么?

2 个答案:

答案 0 :(得分:1)

  

任何人都知道我可能缺少什么?

可能。也许是吧。您在发布中描述的内容听起来像编码问题。所以你错过了正确的编码。

正如您所说的URL可能是URL编码。某些字符(如空格)在URL中具有特殊含义,因此您不能只使用任何字符,但需要对所有字符进行正确编码。

确切描述如何制定包含的URL。 2. Characters in the internet standard RFC3986概述了URL编码的工作原理。

与URL编码相关的PHP函数是 urlencode() rawurlencode ,在您的案例http_build_query()中更有用。

答案 1 :(得分:1)

如果你想将xml编码到URL中,

http://php.net/manual/en/function.urlencode.php应该可以帮到你。