加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

解析php多线程下载远程多个文件

发布时间:2020-12-13 06:27:22 所属栏目:PHP教程 来源:网络整理
导读:div class="codetitle" a style="CURSOR: pointer" data="77962" class="copybut" id="copybut77962" onclick="doCopy('code77962')" 代码如下: div class="codebody" id="code77962" function remote($urls,$name = '',$path = '',$dir = './images/') { if

<div class="codetitle"><a style="CURSOR: pointer" data="77962" class="copybut" id="copybut77962" onclick="doCopy('code77962')"> 代码如下:<div class="codebody" id="code77962">
function remote($urls,$name = '',$path = '',$dir = './images/') {
if (!is_array($urls) or count($urls) == 0) {
return false;
}
dmkdir($dir);
$curl = $text = array();
foreach($urls as $k => $v) {
if (!empty($v) && preg_match("~^http~i",$v)) {
$nurl[$k] = trim(str_replace(' ',"%20",$v));
$curl[$k] = curl_init($nurl[$k]);
curl_setopt($curl[$k],CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4 );
curl_setopt($curl[$k],CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl[$k],CURLOPT_HEADER,0);
curl_setopt($curl[$k],CURLOPT_CONNECTTIMEOUT,20);
if(!isset($handle)){
$handle = curl_multi_init();
}
curl_multi_add_handle($handle,$curl[$k]);
}
continue ;
}
$active = null;
do{
$mrc = @curl_multi_exec($handle,$active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($handle) != -1) {
do {
$mrc = curl_multi_exec($handle,$active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
foreach ($curl as $k => $v) {
if (curl_error($curl[$k]) == "") {
if ($k == 0) {
$fname[$k] = strtolower($name . '.' . pathinfo($urls[$k],PATHINFOEXTENSION));
} else {
$fname[$k] = strtolower($name . '
' . $k . '.' . pathinfo($urls[$k],PATHINFO_EXTENSION));
}
$text[$k] = (string) curl_multi_getcontent($curl[$k]);
$filedir[$k] = $dir.'/' . $fname[$k];
if (file_put_contents($filedir[$k],$text[$k])) {
$filepath[$k] = $path . $fname[$k];
}
}
curl_multi_remove_handle($handle,$curl[$k]);
curl_close($curl[$k]);
}
curl_multi_close($handle);
return $filepath;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读