【问题标题】:How to delay a curl request in PHP if my content in foreach loop?如果我的内容在 foreach 循环中,如何延迟 PHP 中的 curl 请求?
【发布时间】:2018-01-25 07:10:02
【问题描述】:

我正在使用 php 脚本,我想通过带有 cURL 的 api 发送短信,但是如果我的电话号码是多个(它在一个数组中)并且我使用 foreach 为每个联系人发送短信号码,但是当我在 foreach 中使用 cURL 请求时,它只需要第一个联系人号码,之后它就无法将短信发送到我的联系人数组中可用的另一个号码。

这是要理解的代码。

function sendSMS($data){
    $phones = $data['recipient_contact'];
    $explode_contact = explode(",", $phones);
    //read all the contact and send the mail
    foreach($explode_contact as $k=>$v){
        $contact_number = '91'.$v;
        $sms_body = $data['sms_body'];
        $curl  = curl_init();
        $data = array(
            'aid'=>'XXXX',
            'pin'=>'XXXX',
            'mnumber'=>$contact_number,
            'message'=>$sms_body,
            'singnature'=>'XXXXX');
        $url = sprintf("%s%s","http://mysmslink/HttpLink",http_build_query($data));
        curl_setopt($curl,  CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        sleep(5);
        curl_close($curl);
    }
    return "SMS Send Successfully";
}

【问题讨论】:

标签: php mysql curl


【解决方案1】:

在你的 php.ini 中根据需要设置执行超时时间

max_execution_time = 60

如果你想在 php 文件中定义它。添加这一行

ini_set('max_execution_time', 60);

【讨论】:

  • 如果我们不想在项目级别设置,我们可以在特定函数中设置它吗?
  • 确实如此。在函数代码的下面一行 ini_set('max_execution_time', 300);
  • 你的回答对他有什么帮助?问题是“如果我的内容在 foreach 循环中,如何延迟 PHP 中的 curl 请求?” ,你只是帮他增加执行时间……除了 sleep(5) 之外不耽误它;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多