【发布时间】:2013-11-18 00:05:53
【问题描述】:
我正在向服务器发送 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
}
【问题讨论】:
-
AFAIK,它将在继续运行脚本之前等待响应。
-
尝试在
$ret = curl_exec...行之后添加if ($ret===false) echo curl_error($curl);- 可能是命令超时等待响应。