问题标签 [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 投票
2 回答
8488 浏览

php - 如何使用 fgetcsv 省略空白行

我一直致力于将 csv 文件导入 mysql 数据库。问题是我的客户已经获得了格式错误的文件。行以 43 结尾,但文件下降到 65078!

导入时,脚本需要永远。我该怎么做才能确保只导入 0 到 44 的行?这是我正在使用的代码。

0 投票
2 回答
5418 浏览

php - 使用 fgetcsv 的 PHP 未定义偏移量

好的,我在这个问题上花了几个小时,我不确定发生了什么。我想我只需要对这个问题有一个全新的视角,特别是因为我已经工作了超过 24 小时,而且截止日期是 5 小时。

当我尝试使用从 CSV 中提取的数据时,我收到每个偏移量(0 到 907)的未定义偏移量通知。(这可能意味着我没有成功提取数据,但我已经筋疲力尽,希望得到一些帮助)

有谁知道我做错了什么?

CSV 文件是标准的逗号分隔文件,因此我认为没有任何理由在此处发布该数据。

0 投票
1 回答
385 浏览

php - 为什么这个 PHP fgetcsv() 只显示 csv 的某些部分?

我有这个 PHP:

CSV 由 html 提供<input type="file">。现在它正在打印出只有第一个值和逗号或每一行的数组,而不是打印出每行的十一个值的数组。我让它做正确的事,但不知何故弄乱了我的代码,无法弄清楚我做了什么。

以下是 CSV 的示例:

0 投票
3 回答
19874 浏览

php - 将 CSV 转换为数组

我有这个带有机场代码和城市名称的数组(大约 3500 行)。

我需要将该文件转换为 php 数组。到目前为止,这是我的代码:

虽然我正在为 fgetcsv 函数设置分隔符和封闭字符,但我得到了这个结果:

0 投票
1 回答
1735 浏览

php - 比较多个非常大的 csv 文件

我有 n 个 csv 文件,我需要将它们相互比较并在之后修改它们。问题是每个 csv 文件有大约 800.000 行。

要读取 csv 文件,我使用fgetcsv并且效果很好。获得一些记忆棒,但最终它已经足够快了。但是,如果我尝试将数组相互比较,则需要很长时间。

另一个问题是我必须使用 foreach 来获取带有 fgetcsv 的 csv 数据,因为有 n 个文件。我最终得到了一个超大数组,无法将其与 array_diff 进行比较。所以我需要将它与嵌套的 foreach 循环进行比较,这需要很长时间。

一个代码片段,以便更好地理解:

我的 csv 类使用 fgetcsv 将输出添加到数组中:

所有 csv 文件的每个数据都存储在 $data 数组中。这可能是只使用一个数组的第一个大错误,但我不知道如何在不使用 foreach 的情况下保持文件的灵活性。我尝试使用灵活的变量名,但我也卡在那里:)

现在我有了这个大数组。通常,如果我尝试将这些值相互比较并找出文件一中的数据是否存在于文件二中,依此类推,我使用 array_diff 或 array_intersect。但在这种情况下,我只有一个大数组。正如我所说,运行一个 foreach 需要很长时间。

同样在只有 3 个文件之后,我有一个包含 3 * 800.000 个条目的数组。我想最近 10 个文件后我的记忆会爆炸。

那么有没有更好的方法来使用 PHP 来比较 n 个非常大的 csv 文件?

0 投票
3 回答
18379 浏览

php - PHP fgetcsv() - 查找列数

我试图确定一个 csv 文件有多少列。

这是我的脚本,它只使用第一列,但我有点盲目。我想放置一个限制列数的变量。(因为我可能会出错并添加一列,甚至错过一列)

我敢肯定,这是我没有得到的那些简单易行的事情之一。

0 投票
1 回答
1706 浏览

php - PHP fgetcsv() 显示前 5 行

我正在将 CSV 文件导入我的数据库。我想用列显示前 5 行,以便了解文件中的内容。所以下面我制作了一个快速脚本来打开文件。我计算列数,遍历列数,为每个列创建,然后在其下方抛出一个 while() 循环,以显示行。当然,我循环遍历要匹配的列数。

我成功地从文件中获取数据,我什至得到了正确的列数。但它显示的是文件中间某处的结果,而不是前 5 条记录。

第一行帮助我了解列的名称(如果有列名)。

脚本很脏,我很好奇如何优化它。

0 投票
1 回答
179 浏览

php - 如何在 PHP 中解析“有问题的”CSV

我必须解析一个“有问题的”CSV 文件,如下所示:

当然,我只对实际包含有价值数据的行(value1、value2 和 value3)感兴趣。我试图将 url 提取到一个字符串中然后调用str_getcsv(默认参数),但我得到的是一个难以使用的数组:

0 投票
2 回答
8645 浏览

php - 读取 csv 文件的最快方法

我正在寻找一种非常快速的方法来读取 csv 文件。我的数据结构如下所示:

我正在使用 fgetcsv 将这些数据读入数组。

问题:性能。脚本必须定期读取(和处理)超过 10,000 个条目。

我的第一次尝试很简单:

我的第二次尝试:

  1. 有什么方法可以进一步提高性能,或者我的方法是否尽可能快?
  2. 可能更重要:有什么方法可以定义读取的列,例如有时只需要时间戳、浮点列。有没有比我的方法更好的方法(看看我的第二次尝试:)

谢谢 :)

0 投票
4 回答
4891 浏览

php - CSV 到数组 PHP

我知道有很多资源可以将 CSV 放入关联数组,但我找不到任何可以帮助像我这样的菜鸟做我想做的事情的东西。

我目前在我的 PHP 文件中定义了一个关联数组:

我想将该数组移动到 CSV 文件(users.txt)中,因此:

下一步是导入 users.txt,这样我就可以像使用数组 $users 一样使用它。

这里有什么帮助吗?我尝试的最后一个代码返回了这个:(这不是我想要的)