php高级字符串拆分

时间:2014-07-14 23:10:00

标签: php arrays string split

我花了大量时间在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
    }

我已尝试preg_replacepreg_splitsubstrstr_split,使用strpos并搜索每个部分的字符串位置。没有任何效果。我可以清除这些空格,但它会搞砸Employee name这样的东西,它可能有一个实际的空间。

除了我刚刚列出的内容之外,还有其他方法可以分割字符串吗?我已经尝试了几十个substr和preg函数,但没有一个能帮助我。我已经花了足够的时间进行谷歌搜索的反复试验,我不妨问一下是否有人知道我没有遇到的事情。

1 个答案:

答案 0 :(得分:0)

您可以使用“\ n”分割它以获取线条,然后修剪过度空格并使用正则表达式获取左右部分。

编辑: 我刚刚意识到你不想要左右柱的命名数组。你只是想根据线条进行拆分。

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