怎么在php中利用多线程远程下载文件

介绍

本篇文章为大家展示了怎么在php中利用多线程远程下载文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

php有什么用

php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使php经得久不衰。

代码如下:


功能远程($ url, $ name=& # 39; & # 39;, $ path=& # 39; & # 39;, dir=& # 39;美元。/图片/& # 39;){
,如果(! is_array (url)或count ($ url)==0) {
,,返回false。
,}
, dmkdir ($ dir);
,旋度=文本美元=()数组;
, foreach (url作为k=美元比;$ v) {
,,如果(!空(v),,preg_match (“~ ^ http ~我,美元v)) {
,,, nurl美元($ k)=修剪((大小写不敏感& # 39;& # 39;“% 20“,v)美元);
,,,旋度[$ k]=curl_init美元($ nurl [$ k]);
,,, curl_setopt($旋度($ k) CURLOPT_IPRESOLVE CURL_IPRESOLVE_V4);
,,, curl_setopt(旋度($ k)美元,CURLOPT_RETURNTRANSFER, 1),
,,, curl_setopt(旋度($ k)美元,CURLOPT_HEADER, 0),
,,, curl_setopt(旋度($ k)美元,CURLOPT_CONNECTTIMEOUT, 20);
,,,如果(!收取(处理)美元){
,,,,处理美元=curl_multi_init ();
,,,}
,,, curl_multi_add_handle(手柄,旋度美元[$ k]);
,,}
,,继续;
,}
,活跃美元=零;
,做{
,, $ mrc=@curl_multi_exec(手柄,活跃的美元);
,}, (mrc==CURLM_CALL_MULTI_PERFORM美元);
,而(活跃和美元,mrc美元==CURLM_OK) {
,,如果(curl_multi_select(处理)美元!=1){
,,,做{
,,,, $ mrc=curl_multi_exec(手柄,活跃的美元);
,,,}, (mrc==CURLM_CALL_MULTI_PERFORM美元);
,,}
,}
, foreach ($ k=美元比旋度;$ v) {
,,,如果(curl_error(旋度($ k)美元)==啊?{
,,,,如果(k==0美元){
,,,,,(帧函数[$ k]=美元的名字。& # 39;强生# 39;。pathinfo ($ url ($ k), PATHINFO_EXTENSION));
,,,,其他}{
,,,,,(帧函数[$ k]=美元的名字。& # 39;_ # 39;。$ k。& # 39;强生# 39;。pathinfo ($ url ($ k), PATHINFO_EXTENSION));
,,,,}
,,,,文本美元($ k)=(string) curl_multi_getcontent($旋度[$ k]);
,,,, filedir美元($ k)=dir强生# 39;美元/& # 39;。帧($ k)美元;
,,,如果(写入(filedir美元($ k),美元文本($ k))) {
,,,, filepath美元($ k)=$路径。帧($ k)美元;
,,,}
,,}
,, curl_multi_remove_handle(手柄,旋度美元[$ k]);
,, curl_close($旋度[$ k]);
,}
, curl_multi_close($处理);
,返回filepath美元;
}

怎么在php中利用多线程远程下载文件