微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php发送curl请求并等待响应

我正在向服务器发送一个curl请求,该服务器需要几秒钟来处理请求并吐出响应.我相信我的PHP脚本正在继续而不是等待,因此基于响应的foreach循环吐出0结果.在继续处理数据之前,我如何等待curl事务完成?

  $curl = curl_init();
  curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  curl_setopt($curl, CURLOPT_USERPWD, "admin:password");
  curl_setopt($curl, CURLOPT_URL, "http://server/r/?dst_user__substr='user'");


  curl_setopt($curl, CURLOPT_VERBOSE, 1);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $ret = curl_exec($curl);
  $result = json_decode($ret,true);

 <<<<I need to wait until transaction is complete here>>>>

  foreach ($result['data'] as $key => $value)
  {
        //process data from $result
  }

解决方法:

curl是阻塞的,这意味着:

$result = json_decode($ret,true);

foreach ($result['data'] as $key => $value)
{
      //process data from $result
}

将在以下情况下执行:

$ret = curl_exec($curl);

完成了.您可以使用curl_error()检查错误和其他问题,并使用curl_getinfo()检查HTTP响应代码.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐