1. 前言

工作上采用一些小技巧,对排查、操作等都可以节省很多时间。下面就是根据自己在日常工作中有使用到的好程序。

2. 打印日志

    /**
     * 输出日志
     * @param $content
     * @param string $file
     */
    public function writeLog($content, $file = 'debug') {
        $row = debug_backtrace();
        if (is_array($content)) {
            $content = json_encode($content, JSON_UNESCAPED_UNICODE);
        } elseif (is_object($content)) {
            $content = json_encode($content->toArray(), JSON_UNESCAPED_UNICODE);
        }
        $content = date('Y-m-d H:i:s'). ' ' .  $row[0]['file'] . ':' . $row[0]['line'] . '行' . " " . $content ."\n";
        $file = WWW_ROOT . '/logs/' . $file . "_" . date('Ymd') . ".log";
        file_put_contents($file, $content,FILE_APPEND);
    }

将上面方法放到你项目中去调用,输出的日志有详细的时间和打印的位置,方便排查bug或记录日志使用

3. 根据文件生成sql

此方法是个人使用的,经常会来一些根据文档更改数据的任务,手动wps添加,在数量多的时候非常不方便, 所以就写了个php脚本执行,脚本引入PHPExcel实现。
点击下载PHPExcel,并把下面代码放到根目录就行
或者直接下载我压缩好的包:https://pan.baidu.com/s/1I1sSNs8xdf1RycwOuYxQgQ 提取码:1234
将文件放在php环境下,进入根目录,执行php sql.php,就可生成data.sql,需要其它执行的自己在sql.php更改就行

<?php
set_time_limit(60);
ini_set("memory_limit", "128M");

// 引入PHPExcel文件
require './Classes/PHPExcel.php';

$start = microtime(true);

$cacheMethod   = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
$cacheSettings = array();
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

// 加载excel文件
$excel    = PHPExcel_IOFactory::load('./test.xls');
$curSheet = $excel->getActiveSheet();

// sql文件保存路径
$sqlFile = dirname(__FILE__) . '/data.sql';
$fp      = fopen($sqlFile, 'ab+');

// 获取当前工作表最大行数
$rows = $curSheet->getHighestRow();
// $cols = $curSheet->getHighestColumn();

// 我只需要前面一列
$cols = 'A';

// 将列名转为列数
$cols = PHPExcel_Cell::columnIndexFromString($cols);

for ($i = 1; $i <= $rows; ++$i) {
    $rowStr = "UPDATE device SET model = 'K1-2110' WHERE code = ";
    for ($j = 0; $j < $cols; ++$j) {
        //将列数转换为列名
        $cellName  = PHPExcel_Cell::stringFromColumnIndex($j) . $i;
        $cellValue = $curSheet->getCell($cellName)->getValue();
        $cellValue = trim(iconv('GBK', 'UTF-8', $cellValue));
        $cellValue && $rowStr .= "'{$cellValue}',";
        if ($cellValue) {
            $rowStr = rtrim($rowStr, ",") . ";\r\n";
            fwrite($fp, $rowStr);
        }
    }
}
fclose($fp);

$end = microtime(true);
echo $end - $start;
Copyright © yzx该文章修订时间: 2021-09-08 18:03:00

results matching ""

    No results matching ""