PHP处理csv文件时,正确处理单元格内多余的逗号。
23-09-07 12:00
字数 836
阅读 3189
一般处理csv内容时,php多用explode(",", $csvLine),但是有些csv单元格内有多余的英文逗号,如下面的从腾讯云日志里导出的nginx日志。
remote_addr,request_body,request_method,request_time
10.0.0.35,"{\x22logDatas\x22:\x22[{\x5C\x22orderId\x5C\x22:\x5C\x2220731922\x5C\x22,\x5C\x22oldDeductTime\x5C\x22:\x5C\x22\x5C\x22,\x5C\x22oldExpressTime\x5C\x22:\x5C\x22\x5C\x22,\x5C\x22operType\x5C\x22:\x5C\x223\x5C\x22}]\x22,\x22sourceTag\x22:\x22erp\x22}",POST,5.063,
request_body
这一列里的内容比较复杂有多余逗号,直接用,分隔,处理后的内容就会和我们预想的结果不一样,如何处理呢,或者wps这种软件是如何正确识别的呢,仔细观察发现,这种特殊的单元格内容使用双引号包裹的,所以就是分隔单元格时,要排除双引号包裹的逗号,代码如下
$content = file_get_contents(__DIR__ . '/export-85867e21-492e-4c2a-a656-2f52b91575a3.csv');
$list = explode("\n", $content);
array_shift($list);
foreach ($list as $item) {
// 主要是这样代码
$itemList = preg_split('/,(?=(?:(?:[^"]*"){2})*[^"]*$)/', $item);
var_dump($itemList);
exit;
}
0人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
2024-11
1 篇
2024-06
1 篇
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
展开剩余 68 条
2024-01
1 篇
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
11-07 19:00
06-26 11:51
05-17 17:08
05-17 10:59
04-11 17:05
13 评论
11 评论
10 评论