要實時獲取數據,可以使用curl的streaming請求。以下是一個使用curl實時獲取數據的示例代碼:
<?php
function handleResponse($response) {
// 處理響應數據
echo "Received data: " . $response . "\n";
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/streaming_data'); // 設置請求的URL
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'handleResponse'); // 設置回調函數,處理響應數據
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 設置允許重定向
curl_exec($ch);
curl_close($ch);
上述代碼中,handleResponse
函數用于處理從服務器接收到的數據。在每次接收到數據時,都會調用該函數進行處理。你可以根據實際需求在該函數中添加邏輯來處理數據。
CURLOPT_WRITEFUNCTION
選項用于設置回調函數,它接收兩個參數:curl連接句柄和接收到的數據。在示例代碼中,我們將接收到的數據輸出到控制臺。
CURLOPT_FOLLOWLOCATION
選項設置為true,表示允許curl自動跟隨重定向。
你需要將https://example.com/streaming_data
替換為實際的數據源URL。請注意,數據源的響應要以流的形式返回,而不是一次性返回所有數據。
運行上述代碼后,curl將會發起一個streaming請求并實時獲取數據。每當有新的數據到達時,handleResponse
函數將會被調用,你可以在該函數中處理數據。
請注意,實時獲取數據是一個長時間運行的過程,可能會阻塞其他代碼的執行。你可能需要在一個獨立的進程或線程中運行這段代碼,以免影響其他功能的正常運行。