0

以下函数将 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 服务器

4

1 回答 1

1

你应该试试Phil Sturgeon 的 Codeigniter 的 cURL 库及其方法simple_delete()

$this->load->library('curl');
$url = 'http://localhost/website/api/users/user/id/123';
$response = $this->curl->simple_delete($url);
$html = json_decode($response, TRUE);

如果它不能解决您的问题,也许您将不得不仔细查看您的 REST 服务器。

于 2013-05-25T23:19:16.410 回答