I am working on my degree project and I have to make a system that works based on an API. This API must be integrated into a database, that is, I must extract all information regarding the company for which I work and integrate it into a local bd. I have tried several ways to do it, but I am faced with the problem that the server detects too many simultaneous requests. My code is as follows:
<?php
function cambiarFormatoFecha($fechaI){
$cont = 0;
while(strtotime($sumarDias)<strtotime(date('d-m-Y'))){
$sumarDias = date('d-m-Y', strtotime($fechaI. ' + '.$cont.' days'));
$desarmar = explode("-",$sumarDias);
$nuevaFecha = $desarmar[0].$desarmar[1].$desarmar[2];
$ch = curl_init();
$mh = curl_multi_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,"http://api.mercadopublico.cl/servicios/v1/publico/ordenesdecompra.json?fecha=".$nuevaFecha."&CodigoOrganismo=7106&ticket=DF140AC7-B227-44C7-95DD-FEA0AF61C542");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$data = curl_exec($ch);
curl_close($ch);
$result = json_decode($data,true);
echo $nuevaFecha."<br>";
if(is_array($result['Listado']) || is_object($result['Listado'])){
$h = 0;
sleep(10);
foreach ($result['Listado'] as $value) {
$ch2 = curl_init();
$mh2 = curl_multi_init();
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2,CURLOPT_URL,"http://api.mercadopublico.cl/servicios/v1/publico/ordenesdecompra.json?Codigo=".$value['Codigo']."&ticket=DF140AC7-B227-44C7-95DD-FEA0AF61C542");
curl_setopt($ch2,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch2, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch2, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch2, CURLOPT_TIMEOUT, 60);
$data2 = curl_exec($ch2);
curl_close($ch2);
$result2 =json_decode($data2,true);
if(is_array($result2['Listado']) || is_object($result2['Listado'])){
foreach ($result2['Listado'] as $value2) {
echo $value2['Codigo']." ".$value2['Nombre']." ".$value2['CodigoLicitacion']." ".$value2['TipoMoneda']."<br>";
sleep(10);
}
}
}
}
//sleep(10);
$cont++;
}
}
cambiarFormatoFecha('01-10-2018');
?>
Any ideas / recommendations to do this? It's the first time I've worked with an API, and in such a large project.