Настраиваю апи для сервиса по их же документации и столкнулся с ситуацией, когда код не хочет отработать 2 запроса сразу. Т.е. если мы выполняем одно любое условие, все ок, отправка списка идет, функция работает корректно. НО если все два условия выполняются (true), то функция send_request выполняет только последняя. В данном случае идет только добавление. Если условия поменять местами, то будет происходить только удаление... Что ж не так? PHP: $import_contacts_url = 'https://esputnik.com/api/v1/contacts'; function send_request($url, $json_value, $user, $password) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($json_value)); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_USERPWD, $user.':'.$password); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch); } // отправка удаления пользователей $user_to_delete if (count($user_to_delete)>0){ foreach ($user_to_delete as $key){ $contact = new stdClass(); $arrcontact[] = $contact; } $request_entity = new stdClass(); $request_entity->contacts = $arrcontact; send_request($import_contacts_url, $request_entity, $user, $password); $log .= " Удалили ".count($user_to_delete); } // отправляем новых пользователей. user_to_add if (count($user_to_add)>0){ foreach ($user_to_add as $key){ $contact = new stdClass(); $contact->firstName = $key['firstName']; $contact->lastName = $key['lastName']; $arrcontact[] = $contact; } $request_entity = new stdClass(); $request_entity->contacts = $arrcontact; send_request($import_contacts_url, $request_entity, $user, $password); $log .= " Добавили ".count($user_to_add); }
добавь функцию когда два условия выполняются типо Код (Text): if(count($user_to_delete)>0) &&(count($user_to_add)>0)
Sail , благодарю за подсказку. Сегодня с новыми силами понял в чем был косяк, как оказалось все довольно просто. $arrcontact во втором условии не очищался и получалось, что мы отправляем массив который содержит набор первых и вторых данных