2013-08-14 3 views
2

질문 1 : 여러 변수를 작성하는 가장 좋은 방법은 무엇입니까?PHP가 fwrite로 파일에 로깅

저는 현재 이와 같이 작성하고 있습니다.

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

그리고 길게 건강한 문자열 하나가 생성됩니다.

질문 2 : 어떻게 내가 좋아하는 뭔가를 작성하지 않고 줄 바꿈과 주석을 추가 할 :

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

출력 파일에 줄 바꿈을 삽입 할 방법을 찾고 계십니까? 각 줄의 끝에''\ r \ n "'을 간단히 덧붙이려고 했습니까? – Lix

+1

나는 그것들에 관해 몰랐다, 지금 나는한다. 고맙습니다. –

답변

3

Concatenation! 당신은 기본적으로 하나의 큰 문자열로 변수/문자열의 무리를 결합하고, 그것을 모두를 인쇄 할 수 있습니다 single fwrite.

예 :

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

+0

연결을 알지 못했습니다. 고마워요 –

+0

기꺼이 도와 드리겠습니다! – StephenTG

+2

그리고 5 분 제한 시간이 끝나면이 대답을 받아 들일 것입니다 –

2

무엇 최선의 해결책이 될 것은 유스 케이스에 따라 달라집니다. 어떤 종류의 데이터를 쓰고 있는지 좀 더 분명하게 알 수 있다면 우리는 조언을 줄 수 있습니다. 하지만 무엇보다도 file system functions을 모두 살펴보십시오. 당신은 몇 가지 옵션 :

을 좋아 아마 하나있다 :

배열

$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)); 

옵션이 많습니다 ... 자세한 내용 =보다 나은 지원;

0

다른 옵션은 Monolog (https://github.com/Seldaek/monolog)를 사용하는 것일 수 있습니다. 당신의 스크립트의 시작 부분에 다음과 같은 것을 추가

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

그것은 처음에 조금 더 작업입니다하지만 당신은 훨씬 더 유연한로 끝날 : 당신이 출력 뭔가 할 때마다 다음

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)); 

추가 솔루션입니다.