我正在尝试用phpexcel读取一些excel文件,到目前为止工作正常.虽然phpexcel有点太聪明了,但是从我的单元格中移除了前导零.我想我需要告诉它将单元格视为文本字符串,而不是一般或数字.但我失败了.我甚至在stackoverflow上发现了关于此的线程,但建议的解决方案根本不起作用.
下面是我正在研究的东西的片段.
foreach(@$objWorksheet->getRowIterator() as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach($cellIterator as $cell){
#$objWorksheet->getStyle($cell->getCoordinate())->getNumberFormat()->setFormatCode('@');
$cells[] = $cell->getValue();
}
}
Run Code Online (Sandbox Code Playgroud)
任何的想法?我不想仅限于阅读数字内容,因为我无法控制用户将上传的内容.将一切都视为字符串将是完美的.
/ peder
我已经在php中编写了一个守护进程,并希望确保它不会泄漏内存,因为它将全天候运行.
即使是最简单的形式,守护进程的memory_get_peak_usage也会报告该脚本为每个循环消耗更多内存.另一方面,memory_get_usage不会增长.
问题是:我应该担心吗?我已经将守护进程剥夺了基本功能,但这仍然在发生.有什么想法吗?
#!/usr/bin/php -q
<?php
require_once "System/Daemon.php";
System_Daemon::setOption("appName", "smsd");
System_Daemon::start();
while(!System_Daemon::isDying()){
System_Daemon::info("debug: memory_get_peak_usage: ".memory_get_peak_usage());
System_Daemon::info("debug: memory_get_usage: ".memory_get_usage());
System_Daemon::iterate(2);
}
Run Code Online (Sandbox Code Playgroud)
最后的注意事项+结论:我最终编写了自己的守护程序包装器,而不是使用pear的system_daemon.无论我如何调整这个库,我都无法阻止它泄漏内存.希望这有助于其他人.
最后的注意事项+结论2:我的脚本已经生产了一个多星期,并且仍然没有泄漏1个字节的内存.所以 - 在PHP中写一个守护进程实际上似乎没问题,只要你对它的内存消耗非常小心.