PHP超低内存遍历目录文件和读取超大文件的方法(2)

也就是说通过 fseek 和 fread 是可以实现分段读取一个超长字符串的,也就是可以实现超低内存处理,但是具体要怎么做还是得看具体业务要求允许你怎么做。

复制大文件

顺便说下 PHP 复制文件,复制小文件用 copy 函数是没问题的,复制大文件的话还是用数据流好,例子如下:

<?php function copy_file($path, $to_file) { if (! is_readable($path)) return false; if(! is_dir(dirname($to_file))) @mkdir(dirname($to_file).'https://www.jb51.net/', 0747, TRUE); if ( ($handle1 = fopen($path, 'r')) && ($handle2 = fopen($to_file, 'w')) ) { stream_copy_to_stream($handle1, $handle2); fclose($handle1); fclose($handle2); } }

最后

我这只说结论,没有展示测试数据,可能难以服众,如果你持怀疑态度想求证,可以用 memory_get_peak_usage 和 microtime 去测一下代码的占用内存和运行时间。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8b5d2ad9687fc9bd2f10bb8c572308ad.html