如何使用PHP从CSV文件读取和删除行?

蒂亚戈·卡斯特罗(Tiago Castro)

我有一个很大的csv文件,其中包含带有电子邮件的列。我需要创建一个脚本来读取此csv文件,发送电子邮件,然后删除该行。是否可以不创建临时文件而做?如果万一我将其存储在数据库中,这将是最好的方法吗?

我的代码:

if (($handle = fopen("emails.csv", "r")) !== FALSE) {
 while (($line = fgetcsv($handle, 1000, ",")) !== FALSE) {
       $mail->parseTextandSendMail($line);
      //Need to remove the $line
  $row++;
 }
fclose($handle);

谢谢

不要惊慌

在我看来,如果您从文件的末尾而不是开头读取行,则可以正常工作。我从这里得到了一些帮助,弄清楚了如何做到这一点,并将那里的答案中的一些代码合并到了一个从文件末尾到最后一行开头的函数中。

function lineStart($file) {
    $position = ftell($file);
    while (fgetc($file) != "\n") {
        fseek($file, --$position);
        if ($position == 0) break;
    }
    return $position;
}

使用该功能,您可以重复读取最后一行的结尾,然后将文件截断为该行开头的文件位置所指示的长度。

$file = fopen('emails.csv', 'r+');       // open for read/write

fseek($file, -1, SEEK_END);              // move to end of file

while (fstat($file)['size']) {
    lineStart($file);                    // move to beginning of line
    $line = fgetcsv($file);
    $mail->parseTextandSendMail($line);  // do your email thing
    ftruncate($file, lineStart($file));  // truncate from beginning of line
}

fclose($file);

我不知道这是否通常是一个好主意(数据库似乎更容易处理),但是我只是想弄清楚是否有一种方法可以完成它,而且这确实可以在我的有限测试中工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何弹出(读取和删除)文件行?

来自分类Dev

如何删除错误行错误的行并使用 Pandas 或 numpy 读取剩余的 csv 文件?

来自分类Dev

使用PHP从CSV文件中删除行

来自分类Dev

如何使用sed删除csv文件的第一行和最后一行

来自分类Dev

如何使用csvHelper读取csv文件中的第二行

来自分类Dev

如何使用BOM表读取PHP中的UTF CSV文件?

来自分类Dev

如何使用PHP读取csv文件中的第二列?

来自分类Dev

使用pandas.read_csv删除分号作为行分隔符,读取csv文件

来自分类Dev

如何使用Python删除CSV文件的第二行

来自分类Dev

如何使用熊猫从csv文件中删除行?

来自分类Dev

如何使用python从csv文件中删除特定行

来自分类Dev

如何使用python从csv文件中删除行?

来自分类Dev

如何使用php删除CSV文件中的多余逗号

来自分类Dev

如何使用Apache文件读取CSV文件?

来自分类Dev

如何读取大型csv文件的特定行

来自分类Dev

使用Flask上传和读取CSV文件

来自分类Dev

如何使用Dask read_csv读取第n行,以快速读取多个文件?

来自分类Dev

如何使用csv.DictReader在django中上传和读取csv文件?

来自分类Dev

如何使用php删除文件的最后一行?

来自分类Dev

如何使用PHP和PDO正确删除行

来自分类Dev

如何删除csv文件中的前X行和最后X行?

来自分类Dev

如何使用 sudo 特权使 txt、csv 和 pem 文件只能由 root 读取和写入?

来自分类Dev

如何从csv文件中删除行的范围?

来自分类Dev

如何使用netlogo读取.CSV文件?

来自分类Dev

如何使用 shell 命令读取 .csv 文件?

来自分类Dev

如何使用PHP搜索和重写CSV文件?

来自分类Dev

如何使用PHP搜索和重写CSV文件?

来自分类Dev

使用sed从csv文件中删除“ [和]”

来自分类Dev

如何在 PHP 中使用和读取不同文件夹中的 php 文件?

Related 相关文章

  1. 1

    如何弹出(读取和删除)文件行?

  2. 2

    如何删除错误行错误的行并使用 Pandas 或 numpy 读取剩余的 csv 文件?

  3. 3

    使用PHP从CSV文件中删除行

  4. 4

    如何使用sed删除csv文件的第一行和最后一行

  5. 5

    如何使用csvHelper读取csv文件中的第二行

  6. 6

    如何使用BOM表读取PHP中的UTF CSV文件?

  7. 7

    如何使用PHP读取csv文件中的第二列?

  8. 8

    使用pandas.read_csv删除分号作为行分隔符,读取csv文件

  9. 9

    如何使用Python删除CSV文件的第二行

  10. 10

    如何使用熊猫从csv文件中删除行?

  11. 11

    如何使用python从csv文件中删除特定行

  12. 12

    如何使用python从csv文件中删除行?

  13. 13

    如何使用php删除CSV文件中的多余逗号

  14. 14

    如何使用Apache文件读取CSV文件?

  15. 15

    如何读取大型csv文件的特定行

  16. 16

    使用Flask上传和读取CSV文件

  17. 17

    如何使用Dask read_csv读取第n行,以快速读取多个文件?

  18. 18

    如何使用csv.DictReader在django中上传和读取csv文件?

  19. 19

    如何使用php删除文件的最后一行?

  20. 20

    如何使用PHP和PDO正确删除行

  21. 21

    如何删除csv文件中的前X行和最后X行?

  22. 22

    如何使用 sudo 特权使 txt、csv 和 pem 文件只能由 root 读取和写入?

  23. 23

    如何从csv文件中删除行的范围?

  24. 24

    如何使用netlogo读取.CSV文件?

  25. 25

    如何使用 shell 命令读取 .csv 文件?

  26. 26

    如何使用PHP搜索和重写CSV文件?

  27. 27

    如何使用PHP搜索和重写CSV文件?

  28. 28

    使用sed从csv文件中删除“ [和]”

  29. 29

    如何在 PHP 中使用和读取不同文件夹中的 php 文件?

热门标签

归档