<?php
/**
 * Notes:公共方法
 * User: wsc
 * Time: 2020/6/17 18:04
 * @return int
 */
//测试
function funs_testfuns(){
    return 123;
}

/**
 * Notes:写日志
 * User: wsc
 * Time: 2020/6/17 18:39
 * @param $level -类型 'error','debug','info','fatal'
 * @param $msg -内容
 * @return bool
 */
function logMessage($level, $msg) {
    $level = strtolower($level);
    // 支持的错误类型
    $type = array('error','debug','info','fatal','createtable','crontab');
    if (!in_array($level,$type)) {
        return false;
    }

    //文件夹目录
    $folder = str_replace('\\', '/', FCPATH.'logs/'.date('Ymd',time()).'/'.$level.'/');
    if(!file_exists($folder)) {
        Directory($folder);
    }
    $instance =& get_instance();
    $info = array(
        'SERVER_PROTOCOL' => isset($_SERVER['SERVER_PROTOCOL'])     ? $_SERVER['SERVER_PROTOCOL']     : '',
        'APP_VERSION'     => isset($instance->request['version'])   ? $instance->request['version']   : '',
        'APP_EQUIPMENT'   => isset($instance->request['equipment']) ? $instance->request['equipment'] : '',
        'SERVER_NAME'     => isset($_SERVER['SERVER_NAME'])         ? $_SERVER['SERVER_NAME']         : '',
        'REQUEST_METHOD'  => isset($_SERVER['REQUEST_METHOD'])      ? $_SERVER['REQUEST_METHOD']      : '',
        'REQUEST_URI'     => isset($_SERVER['REQUEST_URI'])         ? $_SERVER['REQUEST_URI']         : '',
    );

    $info = implode(' --> ', $info);
    $file = date('H').'-log.txt';
    if(is_array($msg)){
        $msg = json_encode($msg);
    }
    $content = date('H:i:s ') . $info.' --> ' .$level .' ：'. $msg . "\n";
    $path = $folder.$file;
    if(!file_put_contents($path, $content,FILE_APPEND)){
        logMessage('fatal',date('y-m-d').' 写入日志失败');
    }
}



/**
 * 递归创建文件
 * @param $dir
 * @return bool
 */
function Directory($dir){

    if(is_dir($dir) || @mkdir($dir,0777,true)){ //查看目录是否已经存在或尝试创建，加一个@抑制符号是因为第一次创建失败，会报一个“父目录不存在”的警告。
        return true;
    }else{
        $dirArr = explode('/',$dir); //当子目录没创建成功时，试图创建父目录，用explode()函数以'/'分隔符切割成一个数组
        array_pop($dirArr); //将数组中的最后一项（即子目录）弹出来，
        $newDir = implode('/',$dirArr); //重新组合成一个文件夹字符串
        Directory($newDir); //试图创建父目录
        if(@mkdir($dir , 0777,true)){
            //创建文件
            //@fopen($fileName , 'wb');
            return true;
        } //再次试图创建子目录,成功输出目录名
    }
}

