-1

データベース レコードから URL にすべての電話番号を送信する必要がありますが、送信するたびに 300 の電話番号のみを制限する必要があります。

次のシナリオを実行できる php スクリプトが必要です。

  1. データベースから 2,000 レコードを取得します。
  2. すべての行をループし、それぞれを変数などに保存します。(重要)
  3. カウント合計には 2,000 レコードがあります。
  4. URL に書き込むたびに 300 レコードをループします。(非常に重要)
  5. URLを送信します(この部分は説明不要です)
  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 への 2 回目のスローを実行するのを待つ方法。

例えば、

300 レコードの最初のループ:
$phoneStr = phoneNumber01;phoneNumber02;phoneNumber03;...;phoneNumber300
$link = "http://smsexample.com/sms.php?destinationnumber=$phoneStr&messagetosms=$message";

次の 300 レコードの 2 番目のループ$ phoneStr
= phoneNumber301;phoneNumber302;phoneNumber303;...;phoneNumber600

等々。

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 に答える