-1

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

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

  1. 从数据库中检索 2,000 条记录。
  2. 循环所有行并将每个行保存到变量或其他内容中。(重要的)
  3. 计数总计有 2,000 条记录。
  4. 每次循环 300 条记录写入 URL。(很重要)
  5. 提交网址(这部分无需解释)
  6. 循环下 300 条记录以写入 URL,并重复此操作直到记录 2,000 条。

我相信在这种情况下,2,000 / 300 = 7 次循环,前 6 次有 300 条记录,最后一次只发送 200 条记录。

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

已编辑

下面是我的原始代码,但它正在读取所有电话号码并将它们全部输入我的 URL:

    $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 条记录写入字符串并抛出到我的 url 后获取下 300 条记录,并等待执行第二次抛出到 url。

例如,

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";

等等。

4

2 回答 2

1
for ($i = 1; $i <= 2000; $i++)
{
    if ($i % 300 == 0 || $i == 2000)
    {
        //Make URL and send
    }
}
于 2012-04-23T10:17:04.777 回答
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);

}
于 2012-04-23T10:15:59.310 回答