php小代码---从慢日志文件分离出日志记录并存放于excel文件中
<?php header("Content-type:text/html; charset=UTF-8"); ini_set('max_execution_time', '10000'); ini_set('memory_limit','1024M'); function dealslowContent($content) { $data = array(); preg_match('/#\sUser@Host:(.+)\n#\sThread_id/', $content, $match); $data['User@Host'] = $match[1]; preg_match('/#\sQuery_time:\s(.+)\sLock_time/', $content, $match); $data['Query_time'] = $match[1]; preg_match('/\sLock_time:\s(.+)\sRows_sent/', $content, $match); $data['Lock_time'] = $match[1]; preg_match('/\sRows_examined:\s(.+)\sRows_affected/', $content, $match); $data['Rows_examined'] = $match[1]; preg_match('/\sRows_read:\s(.+)\n#\sBytes_sent/', $content, $match); $data['Rows_read'] = $match[1]; preg_match('/timestamp=(\d+);\s/', $content, $match); $data['timestamp'] = $match[1]; preg_match('/#\sBytes_sent:\s(.+)\sSET/', $content, $match); $data['Bytes_sent'] = $match[1]; $sqlPos = strpos($content, ';'); $data['sql'] = substr($content, $sqlPos + 1, strlen($content)); return $data; } $slowData = array(); $handle = fopen('mysql-slow.log.2', 'r'); $content = ''; $middlerCha = ''; $identifier = '# User@Host'; $identifierLength = strlen($identifier); while (!feof($handle)) { $oneTakeCha = fread($handle, 1); if ($oneTakeCha === '#') { $middlerCha = '#' . fread($handle, $identifierLength - 1); if ($middlerCha === $identifier) { if ($content != '') { $slowData[] = dealslowContent($content); $content = $middlerCha; } else { $content = $middlerCha; } } else { $content.=$middlerCha; } } else { $content.= $oneTakeCha; } } $slowData[] = dealslowContent($content); fclose($handle); include 'libraries/PHPExcel.php'; include 'libraries/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setTitle("export")->setDescription("none"); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15); $titlearray = array( "主机信息" => 'User@Host', "查询时间" => 'Query_time', "锁表时间" => 'Lock_time' , "查询时检查行数" => 'Rows_examined', "读取行数" => 'Rows_read', "时间" => 'timestamp', "发送字节数" => 'Bytes_sent', "执行的sql" => 'sql' ); $col = 0; foreach ($titlearray as $key => $title) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $key); $col++; } $j = 2; foreach ($slowData as $key => $sd) { $col = 0; foreach ($titlearray as $key2 => $title) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $j, $sd[$title]); $col++; } $j++; } $objPHPExcel->setActiveSheetIndex(0); $objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5'); // Sending headers to force the user to download the file header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="slowsql.xls"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output');
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
<🎜>:死铁路 - 如何完成所有挑战
4 周前ByDDD
Atomfall指南:项目位置,任务指南和技巧
4 周前ByDDD

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)