PHP - 打开和编辑大型文本文件

时间:2015-05-17 22:51:08

标签: php

我想用php打开一个(相当大的,~500行)文本文件,但我只需要在运行PHP命令时重写第二行文本文件。

我的问题是:

1)打开500行文本文件是否会影响服务器的性能?

2)如果是,有没有办法只读取前3到4行来编辑它?

谢谢。

2 个答案:

答案 0 :(得分:2)

500行无需服务器处理。以下是一些基准测试。测试在本地开发环境中完成,具有以下内容:

Windows 7
Core i3 530 @ 2.93GHz
4GB RAM

以下是我使用500行进行提取和打印的5个测试:

Rendered in 0.0010001659 seconds using 17KB of memory.
Rendered in 0.0009999275 seconds using 17 KB of memory.
Rendered in 0.0009999275 seconds using 17 KB of memory.
Rendered in 0.0009999275 seconds using 17 KB of memory.
Rendered in 0.0009999275 seconds using 17 KB of memory.

为证明它不像你想象的那样密集,继续用10,500行进行测试:

Rendered in 0.0009999275 seconds using 343 KB of memory.
Rendered in 0.0009999275 seconds using 343 KB of memory.
Rendered in 0 seconds using 343 KB of memory.
Rendered in 0.0009999275 seconds using 343 KB of memory.
Rendered in 0.0010001659 seconds using 343 KB of memory.

正如您所看到的,它是对资源的边际使用。如果您有兴趣,请参阅以下代码:

//Log current time so we can tell how long it takes to run this script
define('START_TIME', microtime(true));
//Log starting memory useage
define('START_MEMORY_USAGE', memory_get_usage());


$file = 'derp.txt';
$data = file_get_contents($file);
print_r($data);


$time = round((microtime(true) - START_TIME), 10);
$memory = round((memory_get_usage() - START_MEMORY_USAGE) / 1024);
echo 'Rendered in <strong><u>' . $time . '</u></strong> seconds using <strong><u>' . $memory . '</u></strong> KB of memory.';

要更多地了解您的问题,文本文件中存储了什么?只是文字行?我建议做@Dagon stated

答案 1 :(得分:2)

像达伦写的那样(好回答),它不贵。但是如果你得到非常大的文件并且无法使用数据库或类似的存储系统,你可以尝试使用文件指针的fget - 函数形式的PHP,并且能够读取一行。< / p>

PHP: fgets - Manual