在foreach循环php内部卷曲执行

时间:2015-11-12 06:19:26

标签: php mysql curl foreach

在我的PHP应用程序中,我在foreach循环中运行curl_exec。

$myarray = array('0'=>'mobileno.1', '1'=>'mobileno.2'); // Contains 4000 records - from contacts table
foreach($myarray as $myarr)
{
    $tomobile = $myarr;
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $sms_gateway_url."?username=".$sms_username."&api_password=".$sms_password."&to=".$tomobile."&priority=".$sms_priority."&sender=".$sender_id."&message=".$mes
    ));
    $resp = curl_exec($curl);
    curl_close($curl);

    if (strpos($resp, "Submitted") !== false)
    {
        $status = 'success';
    }
    else
    {
        $status = 'failed';
    }
    // mysql insert query (sendsms table)
    // mysql update query (contacts table)
}

这里,逻辑是每次执行,我将从联系人表中获取4000条唯一记录,并使用foreach循环向每个记录发送短信。

此处问题是有时重复的SMS正在为相同的联系人发送。例如,在一次执行中,我的脚本发送大约5000条短信而不是4000条短信。

示例:如果我发送了4000条短信,则已发送超过5000条短信,并在sendms表中插入相同的5000行。每次执行时重复计数都会有所不同。如果我隐藏curl选项,sendms表中会正确插入4000行。

0 个答案:

没有答案