簡體   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