php - 如何为 CSV、fgetcsv() 问题转义逗号

标签 php excel csv

我在 PHP 中使用 fgetcsv() 函数来读取使用 Microsoft Excel 生成的 CSV 文件。

问题是 CSV 文件包含带逗号的值,它按原样读取转义值(带双引号)。

例如: "2,5,7" 读作 "2 & 5 & 8"

问题可以通过将双引号改为单引号来解决。但是我不想每次都编辑每个 CSV 文件。

我使用的代码如下:

$handle = fopen($path, "r");
$data = fgetcsv($handle,1000,",","'");
do
{
    **READ CSV**
}
while ($data = fgetcsv($handle,5000,","));

处理此问题的最佳方法是什么?

最佳答案

改变这一行

$data = fgetcsv($handle,1000,",","'");

$data = fgetcsv($handle,1000,",",'"');

或者只是省略最后两个参数,因为它们是默认值

$data = fgetcsv($handle,1000);

fgetcsv 的第四个参数是封闭字符,它告诉如何构建可能包含分隔符的字段。

关于php - 如何为 CSV、fgetcsv() 问题转义逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16850830/

相关文章:

javascript - 重新加载时从 url 获取 php 变量而不刷新

php - 有人将数据库数据存储在 PHP $_SESSION 中吗?

python - 使用Python格式化Excel中的单元格

php - 将 VB 的 Format() 转换为 PHP

php - 将 csv 文件中的值插入到 MySQL 表中

php - 从 php foreach 插入多行

javascript - 如何避免在此表 td 中换行

r - 将Excel值从列存储到bert中的变量

python - 迭代大型列表(18,895 个元素)时 Double for 循环的更快方法

java - 如何使用 java 读取制表符分隔文件并从中选择几个值