附加信息:我正在从命令行运行它。CentOS 6,总共 32GB 内存,2GB 内存用于 PHP。我尝试将内存限制增加到 4GB,但现在我得到了Fatal error: String size overflow
. PHP 最大字符串大小为 2GB。
我的代码是非常简单的测试代码:
$Reader = new SpreadsheetReader($_path_to_files . 'ABC.xls');
$i = 0;
foreach ($Reader as $Row)
{ $i++;
print_r($Row);
if($i>10) break;
}
而且只打印10行。这需要 2 GB 的内存吗?
错误发生在 excel_reader2.php 的第 253 行
课堂OLERead
里面,里面function read($sFilenName)
这是导致我筋疲力尽的代码:
if ($this->numExtensionBlocks != 0) {
$bbdBlocks = (BIG_BLOCK_SIZE - BIG_BLOCK_DEPOT_BLOCKS_POS)/4;
}
for ($i = 0; $i < $bbdBlocks; $i++) { // LINE 253
$bigBlockDepotBlocks[$i] = GetInt4d($this->data, $pos);
$pos += 4;
}