Php 解析Laravel中的CSV字符串
我的情况是:CSV文件的第一个~500kb被编码为字符串,并作为请求发送到运行Laravel的服务器。如何让Laravel解析该字符串(它本身不是一个完整的CSV文件)以获取列标题和前几行数据 我已经研究过Goodby/CSV,但它看起来似乎只能接受一个文件作为输入,而不能接受一个字符串。是否有一个CSV解释器插件可以处理这种情况,或者我应该编写自己的解析器 编辑: 看起来我可以这样做:Php 解析Laravel中的CSV字符串,php,string,parsing,csv,laravel,Php,String,Parsing,Csv,Laravel,我的情况是:CSV文件的第一个~500kb被编码为字符串,并作为请求发送到运行Laravel的服务器。如何让Laravel解析该字符串(它本身不是一个完整的CSV文件)以获取列标题和前几行数据 我已经研究过Goodby/CSV,但它看起来似乎只能接受一个文件作为输入,而不能接受一个字符串。是否有一个CSV解释器插件可以处理这种情况,或者我应该编写自己的解析器 编辑: 看起来我可以这样做: $Data = str_getcsv($CsvString, "\n"); //parse the rows
$Data = str_getcsv($CsvString, "\n"); //parse the rows
foreach($Data as &$Row) $Row = str_getcsv($Row, ","); //parse the items in rows
当然,我想得太多了
我已经研究过Goodby/CSV,但看起来这只需要
作为输入的文件,而不是字符串
如果已启用,则可以利用GoodbyCSV在内部使用SplFileObject
类这一事实,并将字符串作为数据协议传递:
$lexer->parse('data://text/plain;base64,' . base64_encode($csv_string), $interpreter);
当我需要处理大文件和简单字符串时,我发现这很有用。有什么原因不能只使用常规php函数str_getcsv()?太好了。看起来我可以先用它来获取行,然后再获取列。我将编辑我的问题。我不明白这意味着什么(它本身不是一个完整的CSV文件)@JaredEitnier我的意思是,因为发送到服务器的字符串不是完整的CSV文件,字符串的最后一行可能格式不正确,这导致尝试解析时出现一些问题。