Для цикла с запросом Curl - PHP - PullRequest
0 голосов
/ 21 мая 2018

Я проверяю список адресных книг (выводимых как флажки), чтобы увидеть, какие книги выбрал пользователь.Для выбранных я добавляю их в ESP через их API, используя curl.

У меня есть следующий код, который достигает желаемого результата, однако он вызывает довольно медленную загрузку страницы, я думаю, это потому, что я перебираю большой кусок запросов curl до 15 раз (один раз длякаждая адресная книга) и задавался вопросом, может ли кто-нибудь помочь мне привести в порядок это?

$aBook = $_POST['addressBooks'];
$N = count($aBook);

    for($i=0; $i < $N; $i++)
    {
      $content = [
            'email' => $_POST['email']
        ];
        global $baseUrl, $apiUsername, $apiPassword;
        $url = $baseUrl . '/v2/address-books/' . $aBook[$i] . '/contacts';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt(
            $ch, CURLOPT_HTTPHEADER, array('Accept: application/json',
                                           'Content-Type: application/json')
        );
        curl_setopt($ch, CURLAUTH_BASIC, CURLAUTH_DIGEST);
        curl_setopt(
            $ch, CURLOPT_USERPWD,
            $apiUsername . ':' . $apiPassword
        );
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($content));

        $response = json_decode(curl_exec($ch));

    }

1 Ответ

0 голосов
/ 21 мая 2018

Поскольку $ abook - это массив, почему бы не сериализовать его, не отправить только один запрос curl и не выполнить однократную обработку.Если было бы хорошо запустить несколько запросов с использованием транзакций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...