[英]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.