带变量的url如何是get变量的值?

时间:2011-11-23 15:13:05

标签: php api url get

我想使用网站的API。它以一种简单的方式工作。我指定URL并获取我需要的信息。在我指定的URL中,我提供了一个我想知道该信息的网站的URL。例如:

www.websiteapi.org?url=http://www.google.com&format=extended

我不明白在URL(我想用作参数)包含由&分隔的多个get变量的情况下,API应该如何工作。换句话说,API如何知道&之后的符号序列是输入URL的一部分,而不是指示应该传递给API的新变量?

处理这种情况的标准方法是什么?

ADDED

以下是API工作原理的示例:

http://www.reddit.com/api/info.json?url=http://neatorama.cachefly.net/images/2007-08/iq-range-occupations.jpg&count=1

3 个答案:

答案 0 :(得分:4)

你知道URL encoding吗?也就是说,用%替换特殊字符及其ASCII十六进制值。

将此网址应用到您的网址即可。具体而言,将所有&的出现替换为%26

在服务器上,应用程序将文字&之后的传入变量分开%26转换回&。这是通过HTTP请求获取&符号(以及#等其他特殊字符)的方式。

答案 1 :(得分:4)

urlencode()

甚至更好,

$data = array('url' => 'http://neatorama.cachefly.net/images/2007-08/iq-range-occupations.jpg&count=1');
// or (depends on what url the count variable belongs to):
$data = array(
 'url'   => 'http://neatorama.cachefly.net/images/2007-08/iq-range-occupations.jpg',
 'count' => 1,
);
$url = "http://www.reddit.com/api/info.json?".http_build_query($data);

答案 2 :(得分:2)

Count和URL是两个参数。

我会通过使用urlencode()

替换任何&(以及网址中使用的其他字符,例如=?)来执行此操作