2016-03-27 2 views
1

я застрял в течение 2 часов на этой PHP локон множественный запросPHP Curl Мульти данных после JSON

я wantta сделать данные после JSON начинаются от 1111 (Это начальная точка и как verificationCode) до 1121 (конечная точка 1111 + $ process_count)

проверить это, ребята:

<?php 
$url = "https://api.mywebsite.com/myapp/customer/verification"; 
$mh = curl_multi_init(); 
$handles = array(); 

$process_count = 10; 

for($c=1111;$c <= 1121;$c++){ 
    $data_verification = array(
     "phone" => "+6285643103039", // +6285643103039 9025 
     "verificationCode" => $c 
); 
    $str_verification = json_encode($data_verification); 
} 

while ($process_count--) 
{ 

    $ch = curl_init($url); 
    $headers= array('Accept: application/json','Content-Type: application/json'); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_HEADER, FALSE); 
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 4000); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$str_verification); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    ob_start(); 
    curl_multi_add_handle($mh, $ch); 
    $handles[] = $ch; 
} 
$running=null; 
do 
{ 
    curl_multi_exec($mh, $running); 
} 
while ($running > 0); 
for($i = 0; $i < count($handles); $i++) 
{ 
    $out = curl_multi_getcontent($handles[$i]); 
    echo "$i. "; 
    print $out . "\r\n"; 
    echo "<br>"; 
    curl_multi_remove_handle($mh, $handles[$i]); 
} 
curl_multi_close($mh); 
?> 

Но curl_setopt ($ ч, CURLOPT_POSTFIELDS, $ str_verification); всегда заданное значение конечной точки 1121.

И не зацикливание

от 1111 до 1121.

Любой может понять это? я буду рад за любую помощь

ответ

0

Вы делаете ошибку в вашем первом цикле, вы стирания данных каждый раз, когда в только одной переменной, а не массив

$str_verification = json_encode($data_verification); 

Вот что я предлагаю вам сделать:

$str_verification = array(); 
for($c=1111;$c <= 1121;$c++){ 
    $data_verification = array(
     "phone" => "+6285643103039", // +6285643103039 9025 
     "verificationCode" => $c 
); 
    $str_verification[] = json_encode($data_verification); 
} 

for ($i = 0; $i != 10; $i++) 
{ 

    $ch = curl_init($url); 
    $headers= array('Accept: application/json','Content-Type: application/json'); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_HEADER, FALSE); 
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 4000); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$str_verification[$i]); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    ob_start(); 
    curl_multi_add_handle($mh, $ch); 
    $handles[] = $ch; 
}