【发布时间】:2012-02-29 16:05:21
【问题描述】:
我使用的是 PHP 5.3.6,但我似乎无法使用 CURL 发出 PUT 请求,只输入一个字符串。
function put_data($url, $data)
{
$useragent="SimpleAgent-1.0";
$fh = fopen('php://memory', 'rw');
fwrite($fh, $data);
rewind($fh);$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_INFILE, $fh);
curl_setopt($ch, CURLOPT_INFILESIZE, strlen($data));
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_PUT, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
fclose($fh);
return $result;
}
这里,$data 是我要 PUT 的字符串。 不起作用并返回以下错误:
500 Internal Server Error 服务器出错或无法运行 执行请求的操作。
预期的字符串或缓冲区
【问题讨论】:
-
你的 PHP 有
error_log吗? -
尝试在倒带前关闭($fh);无论如何阅读apache日志
-
倒带后抱歉($fh);
-
@ZiTAL:试过了。没用。
-
除了 CURL 方式之外,还有其他方法可以从 PHP 发出 PUT 请求吗?