在Laravel中解析CSV字符串

时间:2014-07-25 18:30:28

标签: php string parsing csv laravel

我的情况是这样的:第一个~500kb的CSV文件被编码为字符串并作为请求发送到我的服务器,运行Laravel。如何让Laravel解析该字符串(这本身不是一个完整的CSV文件)来获取列标题和前几行数据?

我已经查看了Goodby / CSV,但看起来好像只能将文件作为输入,而不是字符串。是否有可以处理这种情况的CSV解释器插件,或者我是否应该编写自己的解析器?

修改

看起来我可以这样做:

$Data = str_getcsv($CsvString, "\n"); //parse the rows 
foreach($Data as &$Row) $Row = str_getcsv($Row, ","); //parse the items in rows 

当然,我正在思考它。

1 个答案:

答案 0 :(得分:0)

  

我已经查看了Goodby / CSV,但看起来好像只能采用   文件作为输入,而不是字符串

如果启用了fopen wrappers,您可以利用GoodbyCSV内部使用SplFileObject类的事实,并将该字符串作为数据协议传递:

$lexer->parse('data://text/plain;base64,' . base64_encode($csv_string), $interpreter);

当我需要处理大文件以及简单的字符串时,我发现这很有用。