首页 > 解决方案 > 如何使用 fgetcsv 将字段括在双引号中

问题描述

我有这个csv:

1629311007-1407,"[{""cats"":""Cat1""},{""cats"":""Cat2""}]",[],title

<?php 
header('Content-Type: text/html; charset=UTF-8');
$local_file = 'data.csv';
echo count(file($local_file)).' itens';

$fileHandle = fopen($local_file, "r");

while (($row = fgetcsv($fileHandle, 0, ',')) !== FALSE) {

  echo $row[0].'<br>';
  echo $row[1].'<br>';
  echo $row[2].'<br>';
 

}
?>

输出必须是:

1629311007-1407
[{""cats"":""Cat1""},{""cats"":""Cat2""}]
title

但它是这样出来的

1629311007-1407
"[{""cats"":""Cat1""}
{""cats"":""Cat2""}]"

我该如何调整?

标签: phpfopendelimiterfgetcsv

解决方案


($fileHandle,0,',','"');

添加第四个参数,fgetcsv其中不会破坏双引号之间的字符串之间的逗号。因此双引号之间的逗号将被忽略并被视为 1 个字段。


推荐阅读