首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用PHP取消cURL请求

用PHP取消cURL请求
EN

Stack Overflow用户
提问于 2018-07-07 21:27:21
回答 1查看 1.7K关注 0票数 1

我试图用PHP取消一个已经启动的cURL请求。由于我一直在努力寻找一个好的解决方案,我现在被一个取消链接的功能所困,这个功能实际上不起作用,因为cURL正在下载内容。

代码语言:javascript
复制
unlink(/foobar/foo.txt): Resource temporarily unavailable in /project/delete.php on line 16

这段代码就是我现在遇到的问题:

代码语言:javascript
复制
unlink($fileLocation);

由于我没有使用cURL的经验,我不确定如何才能停止在我的下载部分中完成的cURL请求:

代码语言:javascript
复制
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
curl_exec($ch);

基本上是什么用例:用户下载一个文件,也应该有可能取消下载。我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-12-13 05:13:10

这个First答案非常完美。但它只能与原始回调函数一起使用。例如,如果您将arg插入回调函数中,它将不起作用:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION,function ($resource, $download_size, $downloaded_size, $upload_size, $uploaded_size) use ($my_arg) 
  {
    progressCallback($resource, $download_size, $downloaded_size, $upload_size,       $uploaded_size, $my_arg);   
  }
);

并处理回调

代码语言:javascript
复制
function progressCallback($resource, $download_size, $downloaded_size, $upload_size, $uploaded_size, $my_arg) {
   //some logic 
  if ($need_to_cancel) { 
    return 1;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51223679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档