PHP--简单的自定义新建文件打印

/*

$ary      要写入数据

$filename   要写入文件 的文件名

$files          文件隶属 的文件夹

$k                数据写入开头

*/

function data_log($ary = "error", $filename = "error.txt", $files = "./error", $k = "") {


//如果是数组,则按照 键->值 方式写入文件

    if (is_array($ary)) {
        foreach ($ary as $key => $val) {

            data_log($val, $filename, $files, $k."->".$key);//递归--带入"键"

        }

 

//如需简单点  以上 可替换为

             data_log(print_r($ary,true),$filename,$files);
    } else {
        $msg = !empty($k)? $k . "=" . $ary:$ary;//是否指定数据开头
        if (!file_exists($files)) {
            create_folders($files);//创建目录
        }
        $fp = fopen($files . "/" . $filename, "a+");//尝试打开该文件,如不存在则创建,存在指针移向末尾
        flock($fp, LOCK_EX + LOCK_NB);//文件上锁
        fwrite($fp, $msg . "\r\n");//文件末尾添加换行
        flock($fp, LOCK_UN);//解锁
        fclose($fp);//关闭
    }
}

 

放入类中

    /**
     * 日志写入
     * @param type $ary         要写入数据
     * @param type $filename    要写入文件 的文件名
     * @param type $files       文件隶属 的文件夹
     * @param type $k           数据写入开头
     * 
     */
    function data_log($ary = "error", $filename = "error.txt", $files = "./error", $k = "") {
//如果是数组,则按照 键->值 方式写入文件
        if (is_array($ary)) {
            foreach ($ary as $key => $val) {
                $this->data_log($val, $filename, $files, $k . "->" . $key); //递归--带入"键"
            }
//如需简单点  以上 可替换为
//            data_log(print_r($ary, true), $filename, $files);
        } else {
            $msg = !empty($k) ? $k . "=" . $ary : $ary; //是否指定数据开头 
            if (!file_exists($files)) {
                $this->create_folders($files); //创建目录 
            }
            $fp = fopen($files . "/" . $filename, "a+"); //尝试打开该文件,如不存在则创建,存在指针移向末尾 
            flock($fp, LOCK_EX + LOCK_NB); //文件上锁 
            fwrite($fp, $msg . "\r\n"); //文件末尾添加换行 
            flock($fp, LOCK_UN); //解锁 
            fclose($fp); //关闭 
        }
    }



/*
 * 创建多级目录
 *
 * mkdir()  只能在已经存在的目录中创建创建文件夹(即父级必须有才行)。
 * mkdirs()  可以在不存在的目录中创建文件夹。诸如:a\b,既可以创建多级目录。
 * dirname()  是返回路径中的目录部分。
 * is_dir()  用于判断给出的文件名是否是一个有效的目录
 *
 * */
function create_folders($dir) {
    return is_dir($dir) or (create_folders(dirname($dir)) and mkdir(iconv("UTF-8", "GBK", $dir), 0777, true));
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值