【发布时间】:2015-09-03 17:02:58
【问题描述】:
我需要用php捕捉/分离一些特定的数据值。似乎在 php 中诸如 preg_match() 之类的东西。但没有成功。我将展示我正在处理的数据的一小部分。原始文件有超过32万个字母。
129/09/20031820252310112414060213090516030,005BA15446454880725759349.765,82689,8410,004,002,000,000,000,00PRSPSPSP206/10/20032315050412162006111924010913070,001SP184623281252478188596.323,701.388,9510,004,002,000,000,000,00313/10/20032023120806010711140416100917240,002SP158689796244608211400.623,702.173,3610,004,002,000,000,000,00SP420/10/20031605252423081202171801100419130,001MT2589569123912706657902.226,021.498,7210,004,002,000,000,000,00527/10/20031513200211240916042325120819010,002BA47214736195636860992380.017,55687,4910,004,002,000,000,000,00MS603/11/20032319010507211610152506021204170,002RJ39314242162320888301489.140,061.066,8310,004,002,000,000,000,00RS
我需要将这些数据分开,就像那样。可以是数组,也可以是 .txt 文件。
29/09/2003182025231011241406021309051603,
06/10/2003231505041216200611192401091307,
13/10/2003202312080601071114041610091724,
20/10/2003160525242308120217180110041913,
27/10/2003151320021124091604232512081901,
03/11/2003231901050721161015250602120417,
这些数据有一个模式来获取值。值 /20 将是关键,因此他可以选择循环值,因为它是此数据的默认值。
如果 preg_match() 起作用了,它会根据值/20取值,会使用 substr() 正负来选择选择每个找到的值的范围,这样找到的这个数量之后就是在数组或 .txt 文件上播放。我已经尝试过array_search(),但它似乎带来了布尔响应(TRUE 或 FALSE)。我也尝试使用explode,但是值/20 消失了,因此失去了搜索的回车键。
我真的迷路了,我正在寻找几天,并认为有人可以给我一条解决问题的方法。 php中是否有其他命令可以帮助我解决这个问题?
【问题讨论】:
-
这可能是简单的 CSV 数据吗?如果没有,你知道确切的结构吗?
-
@JensA.Koch 数据来自一个 .html 文件,所以我在 php 中选择了这个文件,并使用 strip_tags() 获取了所有标签,只留下数据值,所以把它全部在一起,因为我使用 str_replace() 的数字之间有很多空白空间。最后我把它放在一个 .txt 文件中