0

我正在尝试运行读取 CSV 的复杂导入任务。此导入工作正常,除非服务器用完可用内存来完成任务。我正在尝试将文件拆分为 1000 行的块,以允许服务器然后一一处理这些“咬大小”部分。但是,我的 CSplit 不会拆分文件。我的语法是否正确。

我检查了目录是否正确,命令的路径是否正确,文件在那里但没有运气。

提前致谢。

function processSplit() {
      chdir('Files');
      $dir = '*';

      foreach (glob($dir) as $file) {
           system(CSPLIT_PATH . " -k -n 4 -f ' " . $file . " ' 1000 '{1000}'");

      }
 }
4

2 回答 2

1

命令行不正确。你有:

system(CSPLIT_PATH . " -k -n 4 -f ' " . $file . " ' 1000 '{1000}'");

应该:

system(CSPLIT_PATH . " $file -k -n 4 -f ' " . $file . " ' 1000 '{1000}'");

此外,我会更改-f ' " . $file . " ',因为您正在输出文件的前后创建一个空格。

于 2012-08-29T15:22:09.407 回答
0

解决了。Grzegorz 感谢您的帮助,但问题在于传递的文件的结构以及使用此函数时文件不能包含任何空格的事实。使用preg replace将所有空白更改为_解决问题。

于 2012-08-30T13:24:36.240 回答