我的情况是这样的:第一个~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
当然,我正在思考它。
答案 0 :(得分:0)
我已经查看了Goodby / CSV,但看起来好像只能采用 文件作为输入,而不是字符串
如果启用了fopen wrappers,您可以利用GoodbyCSV内部使用SplFileObject
类的事实,并将该字符串作为数据协议传递:
$lexer->parse('data://text/plain;base64,' . base64_encode($csv_string), $interpreter);
当我需要处理大文件以及简单的字符串时,我发现这很有用。