如何使用PHP并行下载和输出cURL?

如何使用PHP并行下载和输出cURL?,php,file,download,save,readfile,Php,File,Download,Save,Readfile,我试图使用PHP实现下载重定向。 我正在通过另一台服务器获取文件 例如: 我希望脚本将文件保存为临时变量,同时保存, 他将其作为下载发送到浏览器 function download($url,$name,$hash){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $data = curl_exec($ch); curl_close($ch)

我试图使用PHP实现下载重定向。 我正在通过另一台服务器获取文件

例如:

我希望脚本将文件保存为临时变量,同时保存, 他将其作为下载发送到浏览器

function download($url,$name,$hash){ 
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        $data = curl_exec($ch); 
        curl_close($ch);
        header('Content-Description: File Transfer');
        header("Content-Disposition: attachment; filename=".$name);  
        ob_clean();
        flush();
        readfile($url);
}
download("http://rarlab.com/rar/wrar420.exe","winrar.rar","26digitHASH");

THX各位。

您尝试做的事情几乎超出了PHP的范围,但多亏了cURL实现的多句柄特性,这应该是可能的

有关如何使用多句柄功能,请参阅的文档

根据规定,在转账完成前可以拨打:

//execute the handles
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }

    // echo the contents downloaded so far
    // Note that this must be called with the curl handle, not with the multi handle.
    echo curl_multi_getcontent($ch);
    flush();

}

是的,我希望它能同时完成,真正发生的是:发出curl请求,完成后,发送下载..我认为这是一个真正的问题。。。还有一个很普通的。。。还有一个有趣的技巧:“我如何用PHP并行下载和输出cURL?”投票赞成重新打开。emm看起来不错,但我只需要一个cURL请求,如何将它与我的函数混合?你需要创建一个多句柄,即使你只将一个cURL句柄链接到它。在你的粘贴箱中,你卷曲并卷曲你的卷曲手柄-不要这样做,多手柄会帮你完成的。哦,它的工作,但下载速度相当慢。。我能做些什么使它更快?(得到根)。测量,测量,测量。什么东西慢?观察CPU负载。制作一个带有微秒时间戳和下载字节的日志。你在那里做什么。。。只发送一次
标题
s,删除
readfile
ob\u clean
并了解它们的功能。尝试下载1)不带
curl\u multi\u getcontent($ch)
,然后2)带
curl\u multi\u getcontent($ch)
但不带
echo
flush()