介绍
这篇文章给大家介绍使用php怎么读取超大的文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
读取大文件最后几行数据:
& lt; php ?/* * ,*取文件最后$ n行 *大敌; ,* @param string  filename 美元;文件路径 ,* @param int  n 美元;最后几行 ,* @return mixed 假表示有错误,成功则返回字符串 ,*/function FileLastLines(文件名,美元,美元n) { ,,如果(! $ fp =, fopen(文件名,美元,& # 39;" # 39;)){ ,,,echo “打开文件失败,请检查文件路径是否正确,路径和文件名不要包含中文“; ,,,return 假; ,,,} 时间=美元才能pos 2; 时间=美元才能eof “,“; 时间=美元才能str “,“; 而才能(n 美元;祝辞,0){ ,,,,(eof 美元;!=,“n") { ,,,,,如果(! fseek (fp美元,pos美元,SEEK_END)) { ,,,,,,,eof 美元;=,获取(fp); ,,,,,,,pos -; ,,,,,,,其他}{ ,,,,,,,休息; ,,,,,,,} ,,,,,} ,,,str 美元。=,fgets (fp); ,,,eof 美元;=,““ ,,,n -美元; ,,,} return 才能,str美元; ,,} echo nl2br (FileLastLines (& # 39; sss.txt& # 39;,, 4));/* * ,* *,*,取文件最后$ n行,* *大敌; ,* @param string  filename 美元;文件路径,* ,* @param int  n 美元;最后几行,* ,* @return mixed 假表示有错误,成功则返回字符串 ,*/function FileLastLines(文件名,美元,美元n) { 如果才能(! $ fp =, fopen(文件名,美元,& # 39;" # 39;)){ ,,,echo “打开文件失败,请检查文件路径是否正确,路径和文件名不要包含中文“; ,,,return 假; ,,,} 时间=美元才能pos 2; 时间=美元才能eof “,“; 时间=美元才能str “,“; 而才能(n 美元;祝辞,0){ ,,,,(eof 美元;!=,“n") { ,,,,,如果(! fseek (fp美元,pos美元,SEEK_END)) { ,,,,,,,eof 美元;=,获取(fp); ,,,,,,,pos——美元; ,,,,,,,其他}{ ,,,,,,,休息; ,,,,,,,} ,,,,,} ,,,str 美元。=,fgets (fp); ,,,eof 美元;=,““ ,,,n,美元; ,,,} return 才能,str美元; ,,} echo nl2br (FileLastLines (& # 39; sss 只txt # 39;,, 4)); function 尾巴(fp美元,,n, base 美元;=,5) { 维护才能(n 美元;祝辞,0); 时间=美元才能pos n 美元;+,1; 时间=美元才能lines 数组(); 而才能(count($行),& lt;,=, $ n) { ,,,试着{ ,,,,,fseek (fp美元,安康;pos美元,SEEK_END); ,,,,,} ,,,catch (Exception $ e) { ,,,,,fseek (0); ,,,,,休息; ,,,,,} ,,,pos 美元;*=,美元的基础; ,,,,(! feof (fp)美元){ ,,,,,函数(线,美元,fgets (fp)美元); ,,,,,} ,,,} return 才能array_slice ($,, 0,, $ n); ,,} var_dump(尾(fopen (“access.log",,“r +“),, 10)); 美元$ fp =, fopen(文件,,“r"); 时间=美元line 10; pos 美元;=,2; $ t =,,,,, $ data =,““ while (line 美元;祝辞,0){ while 才能;(t 美元;!=,“n") { ,,,fseek (fp美元,pos美元,SEEK_END); ,,,t 美元;=,获取(fp); ,,,pos 美元;-; ,,,} 时间=美元才能t “,“; 美元才能data 。=, fgets (fp); 美元才能line -; ,,} fclose (fp); echo $数据; ?在
关于使用php怎么读取超大的文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。