下面的函数将curl删除请求传输到API,并将响应返回给PHP。
该API为所有请求(get、post、put和delete)返回一个JSON数组,除了delete请求之外,所有请求都可以正常工作。
下面的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服务器
2条答案
按热度按时间nzkunb0c1#
您应该尝试Phil Sturgeon's cURL library for Codeigniter及其方法
simple_delete()
:如果它不能解决您的问题,那么您可能需要仔细检查您的REST服务器。
wz3gfoph2#
我也遇到了同样的问题,但添加代码:
化解了