file_put_contents结合print_r,打造日志功能

<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

echo print_r($log,true);
<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

print_r($log,false);

可选,如果为 true 则不输出结果,而是将结果赋值给一个变量,false 则直接输出结果。

<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

file_put_contents('./'.date('Y-m-d').'.log',print_r($log));

存的内容是1,标示成功。

<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

file_put_contents('./'.date('Y-m-d').'.log',print_r($log,true));

只有加了true,才能存入数组中的内容。
但是它并没有追加。

<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

file_put_contents('./'.date('Y-m-d').'.log',print_r($log,true),FILE_APPEND); 

加上FILE_APPEND,就自动追加到文件中了。

<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

file_put_contents('./log/'.date('Y-m-d').'.log',print_r($log,true),FILE_APPEND);

echo '写入成功';

如果log目录不存在,将不会创建这个目录。程序不会终止执行。下面的程序会继续运行。

<?php
$log = [];
$log['name'] = '张三';
$log['age'] = '15';
$log['date'] = date('Y-m-d');

$path = './log/';
if (!is_dir($path)) {
    mkdir($path,0777,true); // 目录,权限,递归
}

$filename = date('Y-m-d').'.log';

file_put_contents($path.$filename,print_r($log,true),FILE_APPEND);

echo '写入成功';

几近完美!!!没有目录,创建目录,递归创建。

原文地址:https://www.cnblogs.com/jiqing9006/p/10541580.html