2014-03-26 58 views
1

我必须用逗号(,)或制表符分隔符来读取文本文件。如果这是不可能PLZ建议我没有办法念想REG EXP或类似的东西.. 下面是示例文件使用phpexcel逗号或制表符分隔符读取文本文件

Transaction Date  Transaction Description  Transaction Debit Transaction Credit 
    18/03/2014,  'POS Transaction 7400000000',  212.00,   ' ', 
    14/03/2014,  'POS Transaction 770000000',  202.95,   ' ', 
    14/03/2014,  'POS Transaction 77631000000',  202.95,   ' ', 
    14/03/2014,  'REV POS Purchase77100000000',  ' ',   202.95 
    11/03/2014,  'MB - Qtel Hala TopUp 50109671 ,QTEL REF:QI3283',30.00 ' ', 
    10/03/2014,  'MB - VODAFONERED35',    35.00,   ' ', 
    08/03/2014,  'MB - Qtel Bill Payment 446748 , QTEL REF:QIB13295320',250.00,' ', 
    03/03/2014,  'MB-Transfer from 100248417 to 100222077', '5,000.00', ' ', 
    01/03/2014,  'POS Transaction 40501048',   207.85, ' ', 
    27/02/2014,  'TFR:000019-Payment - Automatic Loan Pymt W/D','2,880.00',' ', 
    27/02/2014,  'TFR:000005-Payment - Automatic Loan Pymt W/D','2,771.00',' ', 
    27/02/2014,  'ATM Withdraw 0058',     '4,000.00',' ', 
    27/02/2014,  'ATM Withdraw 0058',     '5,000.00',' ', 
    27/02/2014,  'MB-Transfer from 109812 to 10017', ' ',  500.00 
    27/02/2014,  'MB-Transfer from 10892 to 100417', ' ',  500.00 

回答

0

试试这个匹配所有逗号分隔值,如果逗号之间未来会忽略数

$f= file("statement.txt"); //if from text file 

foreach($f as $dailystatmet) 
{ 

     preg_match_all("/('?\d+,\d+\.\d+)?([a-zA-Z]|[0-9]|)[^,]+/",$dailystatmet,$matches); 

     var_dump($matches); 
} 

$dailystatmet="18/03/2014,'POS Transaction 7400000000',212.00,' ', 14/03/2014"; 
preg_match_all("/('?\d+,\d+\.\d+)?([a-zA-Z]|[0-9]|)[^,]+/",$dailystatmet,$matches); 
var_dump($matches); 
+0

由于4乌尔快速回答了真正有用的...什么生根粉制表符分隔文件.. – user3462933

+0

对于标签替换逗号,\ t即/('?\ d +, \ d + \ \ d +)([A-ZA-Z] |。?[0-9] |)[^ \吨] + / – Shafeeq

相关问题