簡體   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