以下函数将 curl 删除请求传输到 api,并将响应返回给 php。
该 api 为所有请求(get、post、put 和 delete)返回一个 json 数组,除删除请求外,一切正常。
以下 curl 函数似乎无法正常工作:
function curl_delete($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_URL,$url);
$result = curl_exec($ch);
curl_close($ch);
return $result; // <-- Function ALWAYS returns whether this is here or not??!..
}
这就是我从 PHP 调用函数的方式:
// [DELETE API URL]:
$url = 'http://localhost/website/api/users/user/id/123';
$html = json_decode(curl_delete($url), true);
如果您查看函数(上面),无论我是否包含 return 语句(在函数末尾),curl 调用的结果(jsonified 数组)总是在函数完成后转储到浏览器 -这不是我想要的。
如果我然后说 echo count($html),将打印返回结果的正确长度,并且 $html 数组工作正常,但是我似乎无法阻止它自动转储到屏幕上。
其他任何 curl 函数都不会发生这种情况,它们按预期工作。
问题:
这是正常行为吗?如何防止 json 转储到屏幕上?
PS 使用 Codeigniter 和 Phil Sturgeon 的 REST 服务器