Php 识别对应于多个curl请求的响应

Php 识别对应于多个curl请求的响应,php,curl,curl-multi,Php,Curl,Curl Multi,我正在开发一个模块,它执行多个curl请求并将响应存储在mongodb中。 除此之外,我还需要维护日志,我希望为其编写请求和相应的文件响应,请求和响应文件的名称需要匹配,如请求\u curl\u first\u请求、响应\u curl\u first\u请求、请求\u curl\u second\u请求,响应\u curl\u第二个请求等等,这样我就可以确定哪个请求给了我哪个响应。 但是当我打印curl信息或curl处理程序时,我无法找到请求和响应之间的链接。 如果我按照下面的脚本,那么就有可能

我正在开发一个模块,它执行多个curl请求并将响应存储在mongodb中。 除此之外,我还需要维护日志,我希望为其编写请求和相应的文件响应,请求和响应文件的名称需要匹配,如请求\u curl\u first\u请求、响应\u curl\u first\u请求、请求\u curl\u second\u请求,响应\u curl\u第二个请求等等,这样我就可以确定哪个请求给了我哪个响应。 但是当我打印curl信息或curl处理程序时,我无法找到请求和响应之间的链接。 如果我按照下面的脚本,那么就有可能针对错误的请求编写错误的响应。 有没有什么方法可以让我把文件名作为curl中的一个附加参数发送,然后按原样返回响应?或者有没有其他方法来实现这一点

下面是我正在使用的脚本

    $mh = curl_multi_init();
    foreach ($param['request'] as $i => $val) {
    $fp = fopen($folder . "/request_" .$i. ".xml", "w");
    fwrite($fp, $val);
    $multiCurl[$i] = curl_init();
    $ch = curl_init();
    curl_setopt($multiCurl[$i], CURLOPT_URL,$param['url']);
    curl_setopt($multiCurl[$i], CURLOPT_ENCODING,1);
    curl_setopt($multiCurl[$i], CURLOPT_POSTFIELDS,$val);
    curl_setopt($multiCurl[$i], CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($multiCurl[$i], CURLOPT_CONNECTTIMEOUT,$connection_timeout);
    curl_setopt($multiCurl[$i], CURLOPT_TIMEOUT,$timeout);
    curl_setopt($multiCurl[$i], CURLOPT_RETURNTRANSFER,1);
    curl_multi_add_handle($mh, $multiCurl[$i]);
}
$index=null;
do {
    curl_multi_exec($mh,$index);
} while($index > 0);
foreach($multiCurl as $k => $ch) {
    $info   =   curl_getinfo($ch);
    if ($info['http_code'] == 200) {
        $data   =   curl_multi_getcontent($ch);
        $fp = fopen($folder."/response_".$k.".xml", "w");
        fwrite($fp, $data);
        curl_multi_remove_handle($mh, $ch);
    }
}