读写大“二进制”文件,不必申请很大内存(fopen,fread,fwrite,fclose)
2015-03-25 10:03
357 查看
<?php /** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param string $dstPath 目标文件路径 * @return bool */ function fetch_big_file($srcPath, $dstPath) { set_time_limit(0); // 设置脚本执行时间无限长 if (!$fpSrc = fopen($srcPath, "rb")) { return false; } $isWriteFileOpen = false; // 写文件 是否已打开? do { $data = fread($fpSrc, 8192); // 每次读取 8*1024个字节 if (!$data) { break; } else if (!$isWriteFileOpen) { // 第一次读取文件,并且有内容,才创建文件 $fpDst = fopen($dstPath, "wb"); $isWriteFileOpen = true; fwrite($fpDst, $data); } else { // 写入 fwrite($fpDst, $data); } } while (true); fclose($fpSrc); fclose($fpDst); return true; } $srcPath = 'd:/PHP/data/eclipse-jee-kepler-R-win32-x86_64.pdf'; $dstPath = 'Z:/reslibCovertingfiles/eclipse-jee-kepler-R-win32-x86_64.pdf'; fetch_big_file($srcPath, $dstPath); echo 'success';
参考:
http://php.net/manual/zh/function.fread.php本文来自:Linux教程网
相关文章推荐
- 读写大“二进制”文件,不必申请很大内存(fopen,fread,fwrite,fclose)
- PHP读写大“二进制”文件,不必申请很大内存(fopen、fread、fwrite、fclose)
- PHP读写大“二进制”文件,不必申请很大内存
- fopen , fread fwrite 函数读写二进制文件 问题总结
- fopen , fread fwrite 函数读写二进制文件 问题总结
- [PHP学习教程 - 文件]001.高速读写大数据“二进制”文件,不必申请大内存(Byte Block)
- 关于标准C文件流读写问题:fopen,fread,fwrite,fclose的一些注意事项
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
- c文件操作之fopen、fclose、fread、fwrite及相关fseek、ftell、rewind例子
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
- C++ 文件读写函数之——fopen、fread和fwrite
- 文件操作--标准I/O操作--fopen() fclose() fread() fwrite()
- php高并发状态下文件的读写(fopen,fwrite,fread)
- 文件读写操作之一 <二进制读写操作> fwrite与fread
- 结构体,fopen,fwrite,fread,fclose 文件打开、写入、读取、关闭
- C语言:用二进制方式向文件读写一组数据(fread、fwrite)
- 文件编程中的两套操作:标准C库(fread, fwrite,fclose,fopen...)和 系统调用(open, read, write...)
- php高并发状态下文件的读写(fopen,fwrite,fread)
- linux c语言之文件操作相关函数--fopen(),fopen_s(),fread(),fwrite(),fclose(),
- C语言:文件函数 fopen(),fclose(),fwrite(),fread()