我正在发送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";
答案 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);