热搜:NVER node 开发 php

读取CSV文件的问题

2024-07-27 16:40:01
读取CSV文件的问题

现在有个CSV的文件,格式如下:

"11111";"1111111";"2324242";"66dggdgg"LF(换行)
“sdfsfsdfsdf”;"sdfsdfsdfsfd";"sdfsdf CR LF(换行) sfsdf";"sdfsdfsdfsfsf"LF(换行)

现在的问题是字段里面的内容包含了换行符,请问这种一般怎么处理?(东南亚一个垃圾平台导出的文件格式)


回复讨论(解决方案)

你应给出真实的文件,哪怕是截个图也好
并说明你遇到的问题

fgetcsv、str_getcsv 都可以很好的处理

http://pan.baidu.com/s/1sjEcrM1
以上是文档链接,主要是怎么处理内容中的换行符

$fp = fopen('Order_2015-12-01_113045.csv', 'r');while($buf = fgetcsv($fp, '"', ';')) {  $res[] = $buf;}print_r($res);
Array(    [0] => Array        (            [0] => 锘�"Order Item Id"            [1] => Lazada Id            [2] => Seller SKU            [3] => Lazada SKU            [4] => Created at            [5] => Updated at            [6] => Order Number            [7] => Customer Name            [8] => National Registration Number            [9] => Shipping Name            [10] => Shipping Address            [11] => Shipping Address2            [12] => Shipping Address3            [13] => Shipping Address4            [14] => Shipping Address5            [15] => Shipping Phone Number            [16] => Shipping Phone Number2            [17] => Shipping City            [18] => Shipping Postcode            [19] => Shipping Country            [20] => Billing Name            [21] => Billing Address            [22] => Billing Address2            [23] => Billing Address3            [24] => Billing Address4            [25] => Billing Address5            [26] => Billing Phone Number            [27] => Billing Phone Number2            [28] => Billing City            [29] => Billing Postcode            [30] => Billing Country            [31] => Payment Method            [32] => Paid Price            [33] => Unit Price            [34] => Shipping Fee            [35] => Wallet Credits            [36] => Item Name            [37] => Variation            [38] => Color            [39] => CD Shipping Provider            [40] => Shipping Provider            [41] => Shipment Type Name            [42] => Shipping Provider Type            [43] => CD Tracking Code            [44] => Tracking Code            [45] => Tracking URL            [46] => Promised shipping time            [47] => Premium            [48] => Status            [49] => Reason        )    [1] => Array        (            [0] => 4510457            [1] => 10940553            [2] => lazada000009            [3] => NO037OTAA43BO8ANMY-8132332            [4] => 2015-11-30 14:09:14            [5] => 2015-11-30 15:23:39            [6] => 344351562            [7] =>             [8] =>             [9] => Rinee Ramiah            [10] => UMW TOYOTSU MOTORS SDN BHDNo 1,jalan batu arang,            [11] =>             [12] =>             [13] =>             [14] =>             [15] => 0122533611            [16] =>             [17] => Selangor-Rawang-48000            [18] => 48000            [19] => Malaysia            [20] => Rinee Ramiah            [21] => UMW TOYOTSU MOTORS SDN BHDNo 1,jalan batu arang,            [22] =>             [23] =>             [24] =>             [25] =>             [26] => 0122533611            [27] =>             [28] => Selangor-Rawang-48000            [29] => 48000            [30] => Malaysia            [31] => Cybersource            [32] => 49.25            [33] => 49.25            [34] => 0.00            [35] => 0.00            [36] => BesWLZ Multi Function Mens Military DualTime Digital Analog Chronograph Sport Wrist Watch 50M Water Resistant Waterproof for Boy Girls Child Kids Gift (Green)            [37] => ...            [38] =>             [39] =>             [40] =>             [41] => Dropshipping            [42] => standard            [43] =>             [44] =>             [45] =>             [46] =>             [47] => No            [48] => canceled            [49] => Out of Stock - Product non available        ))

[0][0] 元素因 BOM 头的影响,结果有点问题
去掉就正常了

Array(    [0] => Array        (            [0] => Order Item Id            [1] => Lazada Id  ......

请问怎么去掉BOM头, 是要用文本编辑软件去掉吗?如果用PHP怎么去掉?

$fp = fopen('Order_2015-12-01_113045.csv', 'r');
fseek($fp, 3); //这样就去掉了
while($buf = fgetcsv($fp, '"', ';')) {
  $res[] = $buf;
}
print_r($res);

也不是去掉,是 跳过