如何使用 fgetcsv 用双引号括起一个字段
How do I enclose a field with double quotes, using 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""}]"
我该如何调整?
($fileHandle,0,',','"');
在 fgetcsv
中添加第四个参数,它不会断开双引号之间字符串之间的逗号。因此双引号之间的逗号将被忽略并被视为 1 个字段。
我有这个 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""}]"
我该如何调整?
($fileHandle,0,',','"');
在 fgetcsv
中添加第四个参数,它不会断开双引号之间字符串之间的逗号。因此双引号之间的逗号将被忽略并被视为 1 个字段。