[英]php advanced string splitting
我花了2天的大部分时间来研究在PHP中拆分字符串的所有方法,但是没有一个方法可以帮助我。 我需要能够将以下字符串格式拆分为数组,然后将每个数组拆分为子数组。
该数据是寄存器销售的日记帐。 每笔交易的格式相同,每笔交易字符串长度的唯一区别是所购买物品的数量。 这是一个示例:( 此收据是一个单十六进制流,所有空白都是空格字符(\\ x20),所有'。'都是(\\ x00)。同样,这些都是1条单行,只是为了便于编辑而已看)
DATE 07/13/2014 MON...
PLU#491320 ..
SPRITE T1 $0.75...
CUSTOMER DATE OF BIRTH 02/05/1978...
PLU#820050 ..
SMIRNOFF VODKA LT T2 $13.99...
TAX1 AMT $0.06...
TAX2 AMT $1.42...
.T.O.T.A.L .$.16..2.2...
.C.H.A.R.G.E .$.16..2.2...
NO.000002 REG01 EMPLOYEE 2 TIME 18:09..€
基本上我正在寻找:
Array {
[0] = Date: 07/13/2014
[1] = PLU#/Tax/Price: 491320 & T1 & 0.75, 820050 & T2 & 13.99 (no spaces)
[2] = Tax: T1 & 0.06, T2 & 1.42 (no spaces)
[3] = Transaction No.: 000001
[4] = Register: 01
[5] = Employee: Employee 2
[6] = Time: 17:59
}
我尝试使用strpos
尝试preg_replace
, preg_split
, substr
和str_split
并搜索每个部分的字符串位置。 没事。 我可以清除空格,但是会用诸如Employee name
类的东西Employee name
,其中可能有实际的空格。
除了我刚刚列出的内容以外,还有其他分割字符串的方法吗? 我已经尝试了数十种substr和preg函数,但没有一个对我有帮助。 我已经花了足够的时间来进行Google搜索的反复试验,我还想问一问是否有人知道我没有遇到过什么。
您可以使用“ \\ n”将其拆分以获取行,然后修剪多余的空格,并使用正则表达式获取左右部分。
编辑:我刚刚意识到,您不希望为左和右列命名数组。 您只想根据行拆分。
explode("\n", $input) //double quotes are necessary
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.