问题标签 [fgetcsv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7541 浏览

php - 读取大文件时出现内存不足错误

我有一个大的 csv,我想解析并插入到我的数据库中。我有这个 PHP:

每次我尝试运行我的脚本时,我都会收到此错误:

任何想法如何做到这一点?

0 投票
1 回答
487 浏览

php - 如何在 php 中调试 fgetcsv 函数?

我在使用fgetcsv功能时遇到问题。问题是确切的代码在我的本地有效,但在服务器中无效。以下是代码:

调试时, $handle 的 print_r 返回某些内容(资源 #99),但 print_r $data 什么也不返回。

这对我来说有点奇怪,因为当我在本地测试时,完全相同的代码和 .csv 文件可以工作。上传 csv 函数有效,因为我可以看到文件已上传,并且 fopen 返回正确的值。

我注意到的唯一区别是,在该页面中,实时服务器使用 https,但我认为这应该不是问题,因为文件已上传,并且 fopen 成功。

有人有想法吗?

更新 [已解决] :我找到了解决方案,因为在实时服务器中,此页面使用 https,但用于提交 csv 文件的表单 url 前面没有 https。

0 投票
1 回答
1322 浏览

php - 使用 fgetcsv 写入 CSV

我的 PHP 代码遇到了一些问题。基本上我有一个 CSV 中的人员列表,我正在使用 fgetcsv 将该文件读入表中。我想要做的是让他们的名字显示为一个链接,他们点击链接,它调用 fputcsv,并在他们的名字旁边放一个 1。

目前我只有显示部分工作。我不确定从哪里开始写作部分。

任何见解将不胜感激。

非常感谢!

0 投票
6 回答
122286 浏览

php - 使用 fgetcsv 读取 CSV 文件时出现 UTF-8 问题

我尝试读取 CSV 并回显内容。但内容显示字符错误。

Mäx Müstermänn -> Mäx Müstermänn

CSV 文件的编码是没有 BOM 的 UTF-8(使用 Notepad++ 检查)。

这是 CSV 文件的内容:

"Mäx";"Müstermänn"

我的 PHP 脚本

我尝试按照这里setlocale(LC_ALL, 'de_DE.utf8');的建议使用但没有成功。内容仍然显示错误。

我错过了什么?

编辑:

Anecho mb_detect_encoding($data[$c],'UTF-8');给了我 UTF-8 UTF-8。

echo file_get_contents("specialchars.csv");给我"Mäx";"Müstermänn"

给我

Array ( [0] => Mäx [1] => Müstermänn )

这是什么意思?

0 投票
6 回答
392362 浏览

php - 如何使用 PHP 解析 CSV 文件

假设我有一个.csv包含以下内容的文件:

如何通过 PHP 解析内容?

0 投票
2 回答
814 浏览

php - 使用php将多个嵌套数组写入文件

我想要做的是获取我的产品的 Business Catalyst 生成的 CSV。但它总是包含很多我不需要的东西。

我有一个使用 fgetcsv() 的脚本。代码是

所有这些都是显示我想要的数据。

但是,我现在要做的是写一个新的 CSV 文件。使用 fwrite() 只会导致只写入数据的第一个条目。

有任何想法吗?

0 投票
4 回答
5567 浏览

php - 使用 PHP 在 csv 文件(第一行)的顶部添加一行

需要用 php 处理大型 csv 文件。使用 fgetcsv 和性能似乎相当不错。为了更好/更快的处理,我希望 csv 文件在第一行有列名,现在缺少这些列名。

现在,我想在使用 fgetcsv 处理文件之前使用 PHP 在 csv 文件中添加一个带有列名的顶行。

有没有办法用php轻松地在文件顶部添加一行?或者这是否意味着我必须采取如下方法?

  1. 项目清单
  2. 项目清单
  3. 创建一个临时文件
  4. 将列名添加到此临时文件
  5. 读取原始 csv 文件内容
  6. 将原始 csv 内容放入临时文件中
  7. 删除原始文件
  8. 重命名临时文件

非常感谢任何有关如何以最有效的方式执行此操作的反馈。谢谢你的时间 :)

0 投票
2 回答
8273 浏览

php - str_getcsv() 文件返回一个长数组中的所有行,而 fgetcsv() 仅返回顶部标题行

我有一个使用 Excel 保存为 CSV 文件的文件(我尝试从 Windows 7 和 Mac OSX 中避免任何兼容性问题)。

当我这样做时:

所有的行都变成了一行,我得到了一个只有 1 级深度的数组,并且可以连续运行到数千个键。

所以我尝试了另一种方法:

这仅返回第一行(标题行)并且不会超出它。我该如何正确地做到这一点?有数百行,每行大约有十几个数组,所以我应该得到一个二维数组。

在 CSV 中,每一行都由换行符分隔,值由逗号分隔 - 没有附件。

0 投票
3 回答
5786 浏览

php - PHP - fgetcsv() 重置指针

如何使用 fgetcsv() 重置文件指针?

我有下面的循环,嵌套在另一个while循环中。但是,它从断点开始读取 CSV,而不是在第一次运行后开始读取。

0 投票
1 回答
1923 浏览

php - 使用 fseek 在一定行数后开始读取 CSV

我正在使用当前代码读取 csv 文件并将其添加到数组中:

但是,当使用非常大的 CSV 时,这会在服务器上超时,或者出现内存限制错误。

我想要一种分阶段进行的方法,所以在第一条说 100 行之后它将刷新页面,从第 101 行开始。

我可能会使用元刷新和 URL 参数来执行此操作。

我只需要知道如何调整上面的代码以从我告诉它的行开始。

我已经研究过 fseek() 但我不确定如何在这里实现它。

你能帮忙吗?