这一定相对容易,但我很难找到解决方案。我使用加密的专有网络协议接收数据,最后整个接收的内容最终变量。内容实际上是CSV文件的内容 - 我需要解析这些数据。
如果这是磁盘上的常规文件,我可以使用fgetcsv
;如果我能以某种方式将内容分解为单个记录,我可以使用str_getcsv
- 但是如何将此文件分成记录?简单读取直到换行不起作用,因为CSV可以包含带有换行符的值。以下是一组示例数据:
ID,SLN,Name,Address,Contract no
123,102,Market 1a,"Main street, Watertown, MA, 02471",16
125,97,Sinthetics,"Another address,
Line 2
City, NY 10001",16
167,105,"Progress, ahead",,18
所有这些数据都保存在一个变量中 - 我需要解析它。
当然,我总是可以将这些数据写入磁盘上的临时文件,使用fgetcsv
读取/解析它,但对我来说效率似乎非常低。
答案 0 :(得分:0)
如果fgetcsv
适合您,请考虑以下事项:
file_put_contents("php://temp",$your_data_here);
$stream = fopen("php://temp","r");
// $result = fgetcsv($stream); ...
有关php://temp
的更多信息,请参阅the php:// wrapper