Ответы пользователя по тегу API
  • Как в PHP выполнить запрос, который постоянно (?) отвечает?

    Anastasia2306
    @Anastasia2306
    PHP-разработчик.
    Работа с потоками данных может быть сложной задачей, особенно если вы хотите обработать каждый отдельный ответ независимо. Тут без фреймворка или какой-то спец библиотеки будет тяжело.

    Но, я бы на основе этих данных вот так сделала, а вдруг прокатит?)))

    <?php
    $url = 'http://my-ip/cgi-bin/eventManager.cgi?action=attach&codes=[All]&heartbeat=5';
    
    $context = stream_context_create([
        'http' => [
            'method' => 'GET',
            'header' => 'Connection: close\r\n'
        ]
    ]);
    
    $resource = fopen($url, 'r', false, $context);
    
    while (!feof($resource)) {
        $line = fgets($resource);
        if (strpos($line, '--myboundary') !== false) {
            // Начало нового ответа
            $response = '';
            while (!feof($resource)) {
                $line = fgets($resource);
                if (strpos($line, '--myboundary') !== false) {
                    // Конец ответа
                    break;
                }
                $response .= $line;
            }
            // Обработка ответа
            echo $response;
        }
    }
    
    fclose($resource);
    ?>
    Ответ написан