小编raz*_*ard的帖子

在 PHP 中执行 PUT 请求后如何重用 cUrl 上下文?

我有一些代码,我试图重用 curl 上下文来执行放置请求和获取请求。在每个 put 请求之后,get 请求失败并显示此 PHP 警告:

curl_exec():CURLOPT_INFILE 资源已消失,重置为默认值

我可以使用 PHP 关闭操作符,但我宁愿正确重置 curl 上下文。有谁知道如何做到这一点?我也可以使用不同的 curl 上下文,但我宁愿重用连接,因为应用程序正在发送大量请求。我可以保持文件句柄打开,但这似乎是一个骇人听闻的解决方案,尤其是因为这都包含在函数中,所以我可以调用doPutdoGet

$curlContext = curl_init();
$fh = fopen('someFile.txt', 'rw');
curl_setopt($curlContext, CURLOPT_URL, $someUrl);
curl_setopt($curlContext, CURLOPT_PUT, TRUE);
curl_setopt($curlContext, CURLOPT_INFILE, $fh);
curl_setopt($curlContext, CURLOPT_INFILESIZE, $size);
$curl_response1 = curl_exec($curlContext);
fclose($fh);
curl_setopt($curlContext, CURLOPT_PUT, FALSE);
curl_setopt($curlContext, CURLOPT_HTTPGET, TRUE);
curl_setopt($curlContext, CURLOPT_URL, $someOtherUrl);
$curl_response1 = curl_exec($curlContext);
Run Code Online (Sandbox Code Playgroud)

谢谢。

php curl

5
推荐指数
1
解决办法
2745
查看次数

标签 统计

curl ×1

php ×1