繁体   English   中英

PHP高级字符串拆分

[英]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_replacepreg_splitsubstrstr_split并搜索每个部分的字符串位置。 没事。 我可以清除空格,但是会用诸如Employee name类的东西Employee name ,其中可能有实际的空格。

除了我刚刚列出的内容以外,还有其他分割字符串的方法吗? 我已经尝试了数十种substr和preg函数,但没有一个对我有帮助。 我已经花了足够的时间来进行Google搜索的反复试验,我还想问一问是否有人知道我没有遇到过什么。

您可以使用“ \\ n”将其拆分以获取行,然后修剪多余的空格,并使用正则表达式获取左右部分。

编辑:我刚刚意识到,您不希望为左和右列命名数组。 您只想根据行拆分。

explode("\n", $input) //double quotes are necessary

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM