繁体   English   中英

PHP使用fwrite记录到文件

[英]Php logging to a file with fwrite

问题1:编写多个变量的最佳方法是什么?

我目前正在这样写它们。

fwrite($fp, $var1);
fwrite($fp, $var2);
fwrite($fp, $var3);
    ...etc

这样就形成了一个长期有效的输出字符串。

问题2:如何在不编写类似以下内容的情况下添加换行符和注释:

fwrite($fp, 'var1:');
fwrite($fp, &var1); 
<br>?

级联! 您基本上可以将一堆变量/字符串组合成一个大字符串,并在单个fwrite中全部打印出来。

即:

fwrite($fp, "var1: " . $var1 . "\r\nvar2: " . $var2 );

等等

最佳解决方案将取决于用例。 如果您可以更清楚地知道要写入哪种数据,我们可以为您提供建议。 但是首先要看一下所有不同的文件系统功能 你可能喜欢一个:)

一些选择:

写出一个数组

$data = array('value 1', 'value 2', 'value 3');
file_put_contents(realpath('path/to/file'), $data);

或索引数组

$data = array('var 1' => 'value 1', 'var 2' => 'value 2', ...);
foreach($data as $var => $value) {
    fwrite($fp, $var .': '. $value);
}

或者,如果要包括换行符( \\n ):

$data = array('value 1', 'value 2', 'value 3');
fwrite($fp, implode("\n", $data));

选项很多...更多细节=更好的帮助;)

另一个选择可能是使用Monolog( https://github.com/Seldaek/monolog )。 在脚本的开头添加如下内容:

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::DEBUG));

然后,每当您要输出内容时,请添加:

// add records to the log
$log->addDebug($var1);
$log->addDebug($var2);
$log->addDebug($var3);

最初需要做更多的工作,但从长远来看,您最终将获得更灵活的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM