当使用 PHP 的 cURL 库时,可以使用 CURLOPT_WRITEFUNCTION
选项来指定一个回调函数,该函数将在每次接收到的数据块传输到目标时被调用。以下是一个使用 CURLOPT_WRITEFUNCTION
的示例代码:
<?php
// 目标 URL
$url = 'http://example.com';
// 初始化 cURL
$ch = curl_init();
// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'writeData');
// 执行 cURL 请求
$response = curl_exec($ch);
// 关闭 cURL 资源
curl_close($ch);
// 处理响应数据
echo $response;
// 回调函数,用于处理接收到的数据块
function writeData($handle, $data) {
// 在这里可以对接收到的数据进行处理,例如输出到日志文件或进行其他操作
// 这里仅简单地输出接收到的数据块
echo 'Received data: ' . $data;
return strlen($data); // 返回实际接收到的数据长度,以便 cURL 知道下一个数据块的大小
}
?>
在上述示例中,CURLOPT_WRITEFUNCTION
被设置为 'writeData'
,这将调用 writeData
函数作为回调函数。在 writeData
函数中,可以对接收到的数据进行处理,这里只是简单地输出接收到的数据块。函数返回实际接收到的数据长度,以便 cURL 知道下一个数据块的大小。最后,通过 curl_exec
执行 cURL 请求并获取响应数据。