PHP如何获取文件行数

貌似没查到有直接获取文件行数的函数。

只能逐行计数么?

大文件直接 sys("wc -l 文件名") 是不是效率能高点

阅读 7.7k
2 个回答

逐行计数在行数比较多的时候会慢,比如用fgets默认读一行,每行都会产生函数呼叫开销。

可以用substr_count($str, "\n")数回车符的个数。

大文件的话,可以每次读1mb的片段,然后用substr_count数出行数,再把结果累加。

小文件直接 $line = count(file('filename'));
大文件可以考虑用 SplFileObject 处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题