我有一个服务器,它要求我发送一个curl响应来获取有关给定电话号码的数据。
$numbers = array('12345','23456','345567','45678');
foreach ($numbers as $value)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "user:password");
curl_setopt($curl, CURLOPT_URL, "http://server/data/user=" . $value);
$ret = curl_exec($curl);
$result = json_decode($ret,true);
echo $result['someData'] . "<br>";
curl_close($curl);
}
我的问题是:这有效吗?
有没有更好的方法?
如何在每个 curl 结果后让 echo 打印到屏幕上,直到等到整个脚本结束时运行?
您需要不时flush
数据。尝试这样的事情
<?php
ob_start(); //Turning ON Output Buffering
$numbers = array('12345','23456','345567','45678');
foreach ($numbers as $value)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "user:password");
curl_setopt($curl, CURLOPT_URL, "http://server/data/user=" . $value);
$ret = curl_exec($curl);
$result = json_decode($ret,true);
ob_flush();//Flush the data here
echo $result['someData'] . "<br>";
curl_close($curl);
}
ob_end_flush();
here
遍历所有这些输出函数
我认为
如果您联系的服务器只接受一个号码,那么这样做是有意义的。
如果您可以访问接收端的代码,那么也许您可以序列化您的数组并一次性发送整个内容。