我在 php 中使用 curl multi exec。我从 db 中读取了一些 url 并传递给 curl。这些 url 也有与之关联的 id。下载完成后,了解与其关联的 id 很重要。你能告诉我是否有传递一个变量,curl 会在响应中返回它。
在此先感谢
您可以为每个 curl 句柄维护自己的数据关联。
$associatedData = array();
$ch = curl_init();
$id = (int) $ch; // will yield a unique number because resources have a globally unique numeric id
$associatedData[$id] = array('data' => $foo);
// now add it via curl_multi_add_handle() etc...
然后,稍后在处理句柄时,您可以查找关联的数据
$id = (int) $ch;
$data = $associatedData[$id];
将私有数据存储在 cURL 简单句柄中,例如:
curl_setopt($ch, CURLOPT_PRIVATE, $url->getId());
// then later
$id = curl_getinfo($ch, CURLINFO_PRIVATE);
PHP 手册中没有(还)记录这个“私有数据”特性。它已在 PHP 5.2.4 中引入。它允许您在 cURL 句柄中存储和检索您选择的字符串。将它用于 URL ID。
请参阅重复问题php-CURL Multi 获取有关特定句柄的信息。