php断点续传之如何分割合并文件_php技巧

复制代码 代码如下:

<?php
ini_set("memory_limit", "50M");//必须的,根据你环境的实际情况尽量大,防止报错
ini_set("max_execution_time", "100");
//file_exists() 函数检查文件或目录是否存在,存在则返回 true,否则返回 false。
//fread() 函数读取文件(可安全用于二进制文件)。fread() 从文件指针 file 读取最多 length 个字节。
//filesize() 函数返回指定文件的大小(字节)。本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
$orgFile = 'Fireworks8-chs.exe';//源文件
$cacheFileName = 'vbcache';//分割成的临时文件块
function cutFile($fileName,$block) {//分割
global $cacheFileName;
if (!file_exists($fileName)) return false;
$num = 1;
$file = fopen($fileName, 'rb');
while ($content = fread($file,$block)) {
$cacheFile = $cacheFileName . $num++ . '.dat';
$cfile = fopen($cacheFile, 'wb');
fwrite($cfile, $content);
fclose($cfile);
}
fclose($file);
}
function mergeFile($targetFile) {//合并
global $cacheFileName;
$num = 1;
$file = fopen($targetFile, 'wb');
while ($num > 0) {
$cacheFile = $cacheFileName . $num++ . '.dat';
if (file_exists($cacheFile)) {
$cfile = fopen($cacheFile, 'rb');
$content = fread($cfile, filesize($cacheFile));
fclose($cfile);
fwrite($file, $content);
}
else {
$num = -1;
}
}
fclose($file);
}
//调用
cutFile($orgFile, 10 * pow(2,20)); //10 * pow(2,20) 就等于 10M pow() 函数返回 x 的 y 次方
mergeFile('ok.exe');
?>

时间: 2024-10-05 00:15:23

php断点续传之如何分割合并文件_php技巧的相关文章

php断点续传之如何分割合并文件

 这篇文章主要介绍了php断点续传之如何分割合并文件,需要的朋友可以参考下  代码如下: <?php  ini_set("memory_limit", "50M");//必须的,根据你环境的实际情况尽量大,防止报错  ini_set("max_execution_time", "100");  //file_exists() 函数检查文件或目录是否存在,存在则返回 true,否则返回 false.  //fread()

php实现读取和写入tab分割的文件_php技巧

本文实例讲述了php实现读取和写入tab分割的文件.分享给大家供大家参考.具体分析如下: 这段php代码实现读取和写入tab分割的文件,包含两个独立的函数,一个读,一个写,例如cvs文件等 // // save an array as tab seperated text file // function write_tabbed_file($filepath, $array, $save_keys=false){ $content = ''; reset($array); while(list

Linux中使用split来分割合并文件

Linux中使用split来分割合并文件 我们使用split命令来完成: 用法:split [选项]... [输入 [前缀]]将输入内容拆分为固定大小的分片并输出到"前缀aa"."前缀ab",...:默认以 1000 行为拆分单位,默认前缀为"x".如果不指定文件,或者文件为"-",则从标准输入读取数据. 长选项必须使用的参数对于短选项时也是必需使用的.&http://www.aliyun.com/zixun/aggr

php调用nginx的mod_zip模块打包ZIP文件_php技巧

php 本身有 zip 模块,可以生产 zip 文件.但是这个 zip 模块只能使用本地文件来打包.如果需要打包输出的文件来自网络,就得先保存临时文件.在文件数量多或者文件大的时候就很杯具.另外,由 php 来输出大的打包文件会占用 php 进程大量时间,影响并发能力. nginx 有一个第三方模块,mod_zip .同样可以输出 zip 包.和 X-Accel-Redirect 有点类似,只需要 php 输出相应文件的路径等信息,然后给一个特殊的响应头即可. nginx zip 模块使用的响应

如何利用PHP执行.SQL文件_php技巧

demo.php: 复制代码 代码如下: <?php/*** 读取 sql 文件并写入数据库* @version 1.01 demo.php*/class DBManager{    var $dbHost = '';    var $dbUser = '';    var $dbPassword = '';    var $dbSchema = '';     function __construct($host,$user,$password,$schema)    {        $th

解析PHP中如何将数组变量写入文件_php技巧

在用PHP记录日志,或者是 Ajax 请求出错想要 debug 的时候.我们一般都会将信息写入到一个指定的文件当中.然后根据相应的信息来处理问题.比如笔者最喜欢在用 Ajax 取不到数据的时候,在PHP脚本里面加上下面一段代码 复制代码 代码如下: $fp = fopen('./a.txt', 'a+b'); fwrite($fp, $content); fclose($fp); 但是,这里有一个问题.那就是 $content 是一个数组怎么办?你可能会说,我循环输出.那要是多维数组呢?我只是为

在PHP中使用Sockets 从Usenet中获取文件_php技巧

作者:Armel Fauveau  原文地址:http://www.phpbuilder.net/columns/armel20010427.php3 PHP能够打开远程或者本地服务器的sockets!这里是一个使用socket的简单的例子:连接到Usenet的新闻服务器,与服务器沟通,并从一个精确的新闻分组中下载一些文章. 使用PHP打开Socket 使用fsockopen()来打开一个Socket.这个函数在PHP3和PHP4中都存在.函数的原型如下: <?php intfsockopen 

php支持断点续传、分块下载的类_php技巧

本文是为大家分享php支持断点续传.分块下载的类,供大家参考,具体内容如下 <?php /** * User: djunny * Date: 2016-04-29 * Time: 17:18 * Mail: 199962760@qq.com * 支持断点下载的类 */ class downloader { /** * download file to local path * * @param $url * @param $save_file * @param int $speed * @par

php实现通过ftp上传文件_php技巧

大概原理 遍历项目中的所有非排除文件,然后获取 文件修改时间晚于文件上一次修改时间 的文件 然后将这些文件,通过ftp上传到对应的目录 具体代码如下: 因为只是工具,代码很乱,见谅 <?php error_reporting(7); if ($_SERVER['SERVER_ADDR'])exit;//禁止在web服务器下运行 $_GET['exclude'] = array('number.txt','uploads','Zend','docs','cache','You','managesd