【问题标题】:How an url with get variables can be a value of a get variable?带有 get 变量的 url 如何成为 get 变量的值?
【发布时间】:2011-11-23 15:13:04
【问题描述】:

我想使用网站的 API。它以简单的方式工作。我指定 URL 并获取我需要的信息。在我指定的 URL 中,我给出了我想了解其信息的网站的 URL。例如:

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

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

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

添加

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

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

【问题讨论】:

  • 您要使用哪个 API?如果 API 支持带有获取参数的 url,则必须阅读 API 的文档。 url编码有效吗?
  • @KAOSFORGE “url 编码”是什么意思?

标签: php api url get


【解决方案1】:

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】:

    你知道URL encoding吗?即用% 和它们的ASCII 十六进制值替换特殊字符。

    将此应用于您的网址,您就大功告成了。具体来说,将所有出现的& 替换为%26

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

    【讨论】:

      【解决方案3】:

      Count 和 URL 是两个参数。

      我会通过使用 urlencode() 替换任何 &(以及 URL 中使用的其他字符,如 =?)来做到这一点

      【讨论】:

        猜你喜欢
        • 2016-01-22
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-19
        • 2021-08-16
        • 1970-01-01
        • 2023-03-03
        相关资源
        最近更新 更多