php curl multi如何传递回调值

时间:2012-08-13 20:55:26

标签: php curl

我在php中使用curl multi exec。我从db读取了一些url并传递给curl。这些网址还包含与之关联的ID。下载完成后,了解与其关联的ID非常重要。你能否告诉我,无论如何传递一个变量,curl会在响应中返回它。

提前致谢 wantro

2 个答案:

答案 0 :(得分:3)

您可以为每个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];

答案 1 :(得分:2)

将私人数据存储在cURL easy handle中,例如:

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 get info about a particular handle