读取文件的第一行和最后一行的最有效的PHP方法是什么?

时间:2014-12-07 20:38:18

标签: php

我试图打开一个文件并确定它是否有效。如果第一行是START而最后一行是END,则它有效。

我已经看到了获取文件最后一行的不同方法,但它也没有特别注意第一行。

我应该怎么做?我正在考虑在数组中加载文件内容并检查$ array [0]和$ array [x]的START和END。但这对于可能处于中间的所有垃圾来说似乎都是浪费。

如果是有效文件,我将在START和END之间读取/处理文件内容。

3 个答案:

答案 0 :(得分:1)

如果不需要,请不要将整个文件读入数组。如果文件可以很大,你可以这样做:

$h = fopen('text.txt', 'r');
$firstLine = fgets($h);
fseek($h, -3, SEEK_END);
$lastThreeChars = fgets($h);

内存占用率低得多

答案 1 :(得分:-1)

那是我的意思:

$lines = file($pathToFile);
if ($lines[0] == 'START' && end($lines) == 'END') {
    // do stuff
}

答案 2 :(得分:-1)

使用fgets读取整个文件对于小型文件来说是有效的。那么你的文件很大:

  1. 打开它并阅读第一行
  2. 使用tail(我没有检查它,但它看起来不错)我在php.net的fseek文档中找到的功能