您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

有没有思忖过用PHP来做多线程操作

2024/5/4 3:16:58发布33次查看
有没有考虑过用php来做多线程操作~
最近完善下载类中一个远程下载文件 考虑是不是可以分别分段读取文件内容 最后组合。经测试可行哦~ 这是我测试的本地文件~
我想的是咋个可以最简单封装针对任意本地文件 or远程文件 进行操作! 请看:
------解决方案--------------------
分块下载需要双方都支持“断点续传”
一般下载工具都支持,所以你需要做的是服务器端。php实现的断点续传服务大致如下
php code // begin writing headers header(cache-control:); header(cache-control: public); header(content-type: $ctype); $filespaces = str_replace(_, , $filename); // if your filename contains underscores, replace them with spaces $header='content-disposition: attachment; filename='.$filespaces; header($header); header(accept-ranges: bytes); $size = filesize($file); // check if http_range is sent by browser (or download manager) if(isset($_server['http_range'])) { // if yes, download missing part $seek_range = substr($_server['http_range'] , 6); $range = explode( '-', $seek_range); if($range[0] > 0) { $seek_start = intval($range[0]); } if($range[1] > 0) { $seek_end = intval($range[1]); } header(http/1.1 206 partial content); header(content-length: . ($seek_end - $seek_start + 1)); header(content-range: bytes $seek_start-$seek_end/$size); } else { header(content-range: bytes 0-$seek_end/$size); header(content-length: $size); } //open the file $fp = fopen($file,rb); //seek to start of missing part fseek($fp,$seek_start); //start buffered download $n = 0; while(!feof($fp)) { //reset time limit for big files echo fread($fp,1024*$speed); } fclose($fp); exit;

该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product