PHP-Implementierung zum Lesen und Anzeigen großer Dateien
Jun 01, 2018 pm 03:27 PM
php
实例
显示
本篇文章主要介绍PHP实现读取大文件并显示的实例,感兴趣的朋友参考下,希望对大家有所帮助。
使用PHP读取日志文件,当文件比较大的时候,会报内存不足,因此应该部分读取,读取指定的行数的数据
PHP代码:
<?php class Test{ //日志路径 const LOG_PATH="E:\phpServer\Apache\logs\error.log"; const NGINX_LOG_PATH="E:\phpServer\\nginx\logs\error.log"; //显示的行数 const PAGES=50; public static function main(){ header("content-type:text/html;charset=utf-8"); if(!empty($_GET['action'])){ self::$_GET['action'](); exit; } } public static function showApacheLogs(){ $test=new Test(); $result=$test->readLogs(self::LOG_PATH,self::PAGES); $html=""; foreach($result as $line){ if(strpos($line,"error:")){ $line="<font color='red'>".$line."</font>"; } $html.="<p class='line'>".$line."<p>"; } echo $html; } public static function showNginxLogs(){ $test=new Test(); $result=$test->readLogs(self::NGINX_LOG_PATH,self::PAGES); $html=""; foreach($result as $line){ if(strpos($line,"error")){ $line="<font color='red'>".$line."</font>"; } $html.="<p class='line'>".$line."<p>"; } echo $html; } /** * 读取日志 */ private function readLogs($filePath,$num=20){ $fp = fopen($filePath,"r"); $pos = -2; $eof = ""; $head = false; //当总行数小于Num时,判断是否到第一行了 $lines = array(); while($num>0){ while($eof != "\n"){ if(fseek($fp, $pos, SEEK_END)==0){ //fseek成功返回0,失败返回-1 $eof = fgetc($fp); $pos--; }else{ //当到达第一行,行首时,设置$pos失败 fseek($fp,0,SEEK_SET); $head = true; //到达文件头部,开关打开 break; } } array_unshift($lines,fgets($fp)); if($head){ break; } //这一句,只能放上一句后,因为到文件头后,把第一行读取出来再跳出整个循环 $eof = ""; $num--; } fclose($fp); return array_reverse($lines); } } Test::main(); ?> <style type="text/css"> *{ padding: 0; margin: 0; } .logsBox{ margin:5px; padding: 5px; width: 600px; background: #000; color:#fff; font-size: 13px; float: left; } .logsBox .line{ margin: 12px 0; } </style> <p class="logsBox apache"> <p class="line">日志读取...</p> </p> <p class="logsBox nginx"> <p class="line">日志读取...</p> </p> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ function showLogs(api,showClass){ function readLogs(){ $.ajax({ url:api, type:"get", dataType:"text", success:function(data){ $(showClass).html(data); } }); } readLogs(); setInterval(readLogs,5000); } showLogs("?action=showNginxLogs",".nginx"); showLogs("?action=showApacheLogs",".apache"); }); </script>
Nach dem Login kopieren
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
Das obige ist der detaillierte Inhalt vonPHP-Implementierung zum Lesen und Anzeigen großer Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel
Repo: Wie man Teamkollegen wiederbelebt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Wie lange dauert es, um Split Fiction zu schlagen?
3 Wochen vor
By DDD
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Hot-Tools-Tags

Heißer Artikel
Repo: Wie man Teamkollegen wiederbelebt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Wie lange dauert es, um Split Fiction zu schlagen?
3 Wochen vor
By DDD
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein
