hexastudio / array_disk
将数组存储为硬盘上的缓存,减少内存使用
v0.8.0
2015-02-03 04:39 UTC
Requires
- php: >=5.1.0
Requires (Dev)
- phpunit/phpunit: 4.0.4
README
数组磁盘
将数组存储在临时文件中,以减少非常大的数组时的内存使用。
要求
- PHP >= 5.1.0
功能
- 使用现有数组创建 array_disk
- 逐行获取 array_disk
- 使用 array_disk 的键获取值
- 向 array_disk 追加新值
如何使用
require 'Array_Disk.php'; // Create new array disk object $ard = new Array_Disk(); $data = array( 'Value 0', 'Value 1', 'Value 2' ); $ard->store($data); // Store a whole array in array disk object $ard->length(); // Get current array length (return 3) $ard->append('Value 3'); // Append value to array disk object $ard->push('Value 4'); // Alias of append $ard->length(); // return 5 $ard->pop(); // Remove last element from array disk object and return the last element (return 'Value 4') $ard->get(1); // Get array value in key 1 (return 'Value 1') $ard->merge(array('Value 5', 'Value 6')); // Merge array disk object with another array $ard->length(); // return 6 $ard->slice(2, 3); // return array('Value 2', 'Value 3', 'Value 4') $filename = $ard->get_filename(); // Get filename of array disk object storage $ard->read(); // Read array value from the first line (return 'Value 0') $ard->read(); // return 'Value 1' $ard->read(); // return 'Value 2' $ard->read(); // return 'Value 3' $ard->read(); // return 'Value 5' $ard->read(); // return 'Value 6' $ard->rewind(); // Reset cursor back to the first line $ard->sort(); // Sort data
变更日志
- 0.1.0 :
- 原始类
- 0.1.1 :
- 创建新方法获取特定文件行号
- 如果文件名在构造参数中定义,则使用该文件的行号作为数组长度
- 0.1.2 :
- 修复问题 #1
- 0.2.0 :
- 创建新方法 push(append 的别名)
- 创建新方法 pop
- 0.3.0 :
- 创建新方法 rewind
- 创建新方法 merge
- 0.4.0 :
- 创建新方法 save
- 0.4.1 :
- 将 \n 替换为 PHP_EOL
- 0.4.2 :
- 在 merge 方法中支持多个数组
- 0.5.0 :
- 创建新方法 fetch_all
- 0.5.1 :
- 修复 total 为 NULL 的问题
- 0.5.2 :
- 修复文件不为空时数据丢失的问题
- 0.6.0 :
- 创建新方法 sort
- 0.7.0 :
- 创建新方法 slice
- 0.7.1 :
- 修复 preg_replace 问题
- 0.8.0 :
- 新方法 concat
- 0.9.0 :
- 添加新选项,使用 php serialize 而不是 json
- 优化代码
许可证
MIT 许可证 (MIT)
版权所有 (c) 2014 - 2015, Muhammad Sofyan <octa7th@gmail.com>
在此特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的任何人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许获得软件的人使用本软件的权利,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不受任何保证,明示或暗示的,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他行为中,无论是在软件或其使用或与其他软件或其使用或其他软件中产生的。