php小代码---从慢日志文件分离出日志记录并存放于excel文件中_PHP教程

php中文网
发布: 2016-07-12 09:08:22
原创
1348人浏览过

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');
登录后复制

 

代码小浣熊
代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 51
查看详情 代码小浣熊

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1055412.htmlTechArticlephp小代码---从慢日志文件分离出日志记录并存放于excel文件中 ?php header(Content-type:text/html; charset=UTF-8);ini_set(max_execution_time, 10000);ini_set(memor...
WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号