使用JSON通过http搜索查询

时间:2014-07-27 16:32:25

标签: php json api

我正在发送API请求,并希望在网址中提交搜索字词:

$query="My Query";
$query_encode= urlencode($query);

$url_json="API_URL".$query_encode
$json = file_get_contents($url_json);

我想要做的是“我的查询”应包含更复杂的术语,如:

"word1 word2" (word3 OR word4) AND word5

我的问题是我想从API(数据库)中获得与“word1 word2”完全匹配的结果,所以我需要通过http以某种方式发送quoatation标记。

有人知道我需要如何设置我的查询内容,包括使用短语发送查询所需的引号,而不只是单词

$query="My Query";

2 个答案:

答案 0 :(得分:0)

如果您想发送引号,请将其包含在您的查询中。

在PHP中用引号设置字符串值。所以你现在所拥有的不是你想在请求中发送的附加引号,而是由PHP解析和删除的引号。

你应该做点什么:

$query='"My Query"';

这会产生类似%22My+Query%22

的内容

稍后对此进行urldecode以将"My Query"作为字符串值返回。

答案 1 :(得分:0)

将引号放在字符串中。 urlencode()会正确地对它们进行编码。此外,您需要在网址和查询参数之间?,并且您可能需要为参数提供一个名称(我假设它在下面的代码中名为query ,您需要从API规范中获取实际参数。

$query = '"word1 word2"';
$query_encode = urlencode($query);
$url_json = "API_URL?query=$query_encode";
$json = file_get_contents($url_json);