【问题标题】:How do I enclose a field with double quotes, using fgetcsv如何使用 fgetcsv 将字段括在双引号中
【发布时间】:2021-10-22 02:15:51
【问题描述】:

我有这个 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""}]"

如何调整?

【问题讨论】:

  • 为什么不回显 $row[3] 而不是 $row[2] ?

标签: php fopen delimiter fgetcsv


【解决方案1】:
($fileHandle,0,',','"');

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

【讨论】:

  • 谢谢!作品。现在我的问题是像 Verão 这样的编码
  • 我很高兴能帮上忙。这是一个不同的问题,所以尝试解决编码问题,如果没有,您可以创建一个新问题:)
猜你喜欢
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 2021-09-28
  • 2022-01-26
相关资源
最近更新 更多