因为我无法找到一个检索文件行数的函数, 我需要使用
$handle = fopen("file.txt");
For($Line=1; $Line<=10; $Line=$Line+1){
fgets($handle);
}
If feof($handle){
echo "File has 10 lines or more.";
}Else{
echo "File has less than 10 lines.";
}
fclose($handle)
或类似的东西?我想知道的是文件是否超过10行: - )。
提前致谢!
答案 0 :(得分:4)
您可以使用以下方式获取行数:
$file = 'smth.txt';
$num_lines = count(file($file));
答案 1 :(得分:2)
更快,更有记忆的资源:
$file = new SplFileObject('file.txt');
$file->seek(9);
if ($file->eof()) {
echo 'File has less than 10 lines.';
} else {
echo 'File has 10 lines or more.';
}
答案 2 :(得分:2)
如果你有一个LARGE文件会出现这个更大的问题,PHP往往会减慢一些。为什么不运行exec命令让系统返回号码?然后,您不必担心读取文件的PHP开销。
$count = exec("wc -l /path/to/file");
或者如果你想得到更多的幻想:
$count = exec("awk '// {++x} END {print x}' /path/to/file");
答案 3 :(得分:0)
如果你有大文件,那么最好是段读取文件并计算“\ n”字符,或者什么是lineend字符,例如在某些系统上你还需要“\ r”计数器或其他什么..
$lineCounter=0;
$myFile =fopen('/pathto/file.whatever','r');
while ($stringSegment = fread($myFile, 4096000)) {
$lineCounter += substr_count($stringSegment, "\n");
}