我试图打开一个文件并确定它是否有效。如果第一行是START而最后一行是END,则它有效。
我已经看到了获取文件最后一行的不同方法,但它也没有特别注意第一行。
我应该怎么做?我正在考虑在数组中加载文件内容并检查$ array [0]和$ array [x]的START和END。但这对于可能处于中间的所有垃圾来说似乎都是浪费。
如果是有效文件,我将在START和END之间读取/处理文件内容。
答案 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读取整个文件对于小型文件来说是有效的。那么你的文件很大: