【发布时间】:2015-10-23 00:19:57
【问题描述】:
我正在从一个对象(OLE 二进制文件)中读取数据,并且需要找到一种方法将数据拆分为数组或其他格式,以便获得所需的少量信息。我不确定如何实现这一点。
数据是这样进来的:
|some_other_delimited_data|RECORD=1|FIELD_1=A|FIELD_2=B|FIELD_3=C|RECORD=21|FIELD_1=C|FIELD_4=D|FIELD_5=E|RECORD=47|FIELD_6=F||RECORD=1 |FIELD_1=G|FIELD_2=H|RECORD=37|FIELD_8=J|FIELD_9=K|FIELD_10=L|RECORD=40|FIELD_11=M|RECORD=47|FIELD_6=N|some_more_delimited_data|
每个数据集都以“RECORD=1”开头,其中包含多个字段,然后是其他记录。这些记录(编号 2-46)中的每一个都可以出现多次,并且具有不同数量的字段(即 RECORD=17 可以出现五次,并且每个记录具有不同数量的字段)。数据集以 RECORD=47 及其字段结束。完整的数据集包含在 RECORD=1 和 RECORD=47 之间,包括 RECORD=1 和 RECORD=47。
存在多个数据集,因此我需要从多个“RECORD=1”到“RECORD=47”块获取数据。
每个 RECORD 可以有不同数量的字段。
所有内容都用“|”分隔分隔符,并且流中似乎没有任何其他分隔符。
对于每个数据集,我需要得到:
- 从 RECORD=24,来自 FIELD_1 的数据,其中 FIELD_2="FOO"
- 从 RECORD=31,来自 FIELD_1 的数据,其中 FIELD_2="BAR"
如何做到这一点?我有多个文件,需要从每个包含多个数据集的文件中提取数据,因此它需要相当高效。
【问题讨论】:
-
如果它是一个 OLE 文件,你可以使用
OLE包来解析它吗? github.com/pear/OLE -
这不是一项复杂的任务。只是尝试并继续尝试。要在 PHP 中标记您的数据,请尝试创建函数,尝试并出错,但完成这项工作。
标签: php arrays split field explode