Добрый день, суть проблемы такова. Пытаюсь разобраться с API поставщика, написал такой код
function GetAllProducts($token) {
$total = getTotal($token);
for($i = 100; $i <= $total; $i++) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.brain.com.ua/products/1237/" . $token . "?offset=" .$i,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET"
));
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response);
$dbLink = connectdb();
foreach($response->result as $product) {
$dbLink->query("INSERT INTO product (product_id) VALUE ('". $product->productID ."');");
}
}
}
Api при обращении отдает только 100 товаров и в переменной $total лежит общее количество товаров для раздела, например 1000. Что бы получить остальные товары используется ?offset=. Например, если offset=0, то получаем первые 100 товаров, offset=100, получаем следующие 100 товаров и так далее пока не достигнем $total. Скрипт вроде бы и работает, но сказать что он работает крайне медленно это не сказать ничего. Например на обработка 1000 товаров из раздела уходит минут 10. Вопрос в чем, может быть кто-то может посоветовать как можно улучшить цикл для более быстрой работы? Так как предпологается еще циклы для получения других разделов и так далее.