PHP循环限制了数量

时间:2012-04-23 10:10:03

标签: php loops for-loop limit

我必须将我的数据库记录中的所有电话号码提交到URL,但我需要限制每次只发送300个电话号码。

我需要一个能够运行以下场景的php脚本:

  1. 从数据库中检索2,000条记录。
  2. 循环所有行并将每个行保存到变量或其他内容中。 (重要)
  3. 总计有2,000条记录。
  4. 循环300每次都记录写入URL。 (非常重要)
  5. 提交网址(此部分无需解释)
  6. 循环接下来要写入URL的300条记录,并重复它直到记录2,000。
  7. 我相信在这种情况下,2,000 / 300 = 7次循环,其中300次记录为前6次,最后时间仅发送200条记录。

    正如我上面提到的,300条记录的循环非常重要,下一次循环能够知道从记录301开始到600,依此类推。

    EDITED

    以下是我的原始代码,但是它正在读取所有电话号码并将它们全部丢到我的网址上:

        $smsno = trim($_REQUEST['string_of_phone_number_eg_0123456;0124357;0198723']);
        $message = trim($_REQUEST['message']);
    
        $phoneNo = explode(";", $smsno);
    
        // ----------
        //
        // Need to count total $phoneNo, eg total is 2,000 phone numbers
        // Loop 300 times for the phone numbers, eg 001-300, 301-600, 401-900, ..., 1501-1800, 1801-2000
        // Every 300 records, eg $phoneStr =  '0123456;0124357;0198723;...' total 300 phone numbers in this string
        // Write into my URL:  $link = "http://smsexample.com/sms.php?destinationnumber=$phoneStr&messagetosms=$message";
        //
        // ----------
    

    我正在寻求解决方案,因为我不知道如何循环每个300条记录并写入字符串然后将此字符串抛出到我的URL。

    我可以制作前300条记录,但是如何在前300条记录写入字符串后抛出下一条300条记录并扔到我的网址,并等待第二次投掷到网址。

    例如,

    300条记录的第一个循环:
    $ phoneStr = phoneNumber01; phoneNumber02; phoneNumber03; ...; phoneNumber300
    $ link =“http://smsexample.com/sms.php?destinationnumber=$phoneStr&messagetosms=$message”;

    接下来300条记录的第二个循环
    $ phoneStr = phoneNumber301; phoneNumber302; phoneNumber303; ...; phoneNumber600
    $ link =“http://smsexample.com/sms.php?destinationnumber=$phoneStr&messagetosms=$message”;

    等等。

2 个答案:

答案 0 :(得分:1)

for ($i = 1; $i <= 2000; $i++)
{
    if ($i % 300 == 0 || $i == 2000)
    {
        //Make URL and send
    }
}

答案 1 :(得分:0)

// Per-request limit
$limit = 300;

// Get array of numbers
$numbers = explode(';', $_REQUEST['string_of_phone_number_eg_0123456;0124357;0198723']);

// Get message
$message = trim($_REQUEST['message']);

// Loop numbers
while ($numbers) {

  // Get a block of numbers
  $thisBlock = array_splice($numbers, 0, $limit);

  // Build request URL
  $url = "http://smsexample.com/sms.php?destinationnumber=".urlencode(implode(';', $thisBlock))."&messagetosms=".urlencode($message);

  // Send the request
  $response = file_get_contents($url);

}