全球主机交流论坛

标题: 请教下PHP大屌 [打印本页]

作者: simonw    时间: 2023-8-25 12:47
标题: 请教下PHP大屌
一个文本文件,要求始终保留指定行数的内容,比如1万行,超过的时候就删除最前的内容。

有没有高效点的办法?
作者: superEric    时间: 2023-8-25 13:02
一万行小case,file应付的来
作者: yanzhiling2002    时间: 2023-8-25 13:04
  1. <?php

  2. // 指定行数
  3. $lineLimit = 10000;
  4. // 原始文件路径
  5. $filePath = 'path/to/your/file.txt';

  6. // 打开原始文件和临时文件
  7. $originalFile = fopen($filePath, 'r');
  8. $tempFile = fopen('path/to/your/temp_file.txt', 'w');

  9. // 计数器
  10. $lineCount = 0;

  11. // 逐行读取原始文件
  12. while (($line = fgets($originalFile)) !== false) {
  13.     $lineCount++;

  14.     // 写入临时文件
  15.     fwrite($tempFile, $line);

  16.     // 如果超过指定行数,停止写入
  17.     if ($lineCount >= $lineLimit) {
  18.         break;
  19.     }
  20. }

  21. // 关闭文件流
  22. fclose($originalFile);
  23. fclose($tempFile);

  24. // 备份原始文件
  25. copy($filePath, 'path/to/your/backup_file.txt');

  26. // 替换原始文件
  27. rename('path/to/your/temp_file.txt', $filePath);

  28. ?>
复制代码

作者: rkidc    时间: 2023-8-25 13:05
这点毫秒级的处理就不用考虑性能了
作者: 920    时间: 2023-8-25 13:13
写入的时候判断一下行数,超过的时候删除老的数据
作者: Front    时间: 2023-8-25 13:31
这种用 gpt 都能写
作者: 龙腾宇内    时间: 2023-8-25 13:38
用队列实现
作者: mengdodo    时间: 2023-8-25 13:40
不考虑并发的情况下可以用file,最好还是直接redis,没几行代码




欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4