오늘은 소설입니다.
sun's longitude:240 07 47.61 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 43 : [PHP] 표준 에러(stderr)로 메시지를 보내는 방법
 이름  산이 [홈]http://linuxchannel.net/
[PHP] 표준 에러(stderr)로 메시지를 보내는 방법

reference :
http://www.php.net/manual/en/wrappers.php.php

가끔 PHP로 코딩하다 보면 어떤 메시지를 '표준에러'로 보내고자할 경우가
있습니다.

BASH 경우)
-표준출력 : echo 'string'
-표준입력 : read foo 또는 foo.sh < bar.txt 또는 파라메터 전달 $*, $@, $1, $2, $3, ...
-표준에러 : echo 'string' >&2

예를들어,
콘솔이나 터미널에서는 표준출력이 아닌 표준에러로 보내고자 할 경우나
아파치 모듈로 구동되는 PHP 경우, 아파치 에러 로그로 어떤 메시지를
남기기를 원할 경우가 있을 겁니다.

방법은 다음과 같습니다(다른 방법도 있는 건지는 모르겠습니만)

## print to stderr such as error_log()
##
## arguments :
## $error string, error message
##
## return :
## $return mixed, the number of bytes written, or FALSE on error
##
function _stderr($errstr)
{
global $_SERVER;

if($fp = @fopen('php://stderr','w'))
{
## add error_log format style
##
if($_SERVER[HTTP_USER_AGENT])
{
$head = '['.date('D M d H:i:s Y').'] [PHP-stderr] '.
'[client '.$_SERVER[REMOTE_ADDR].'] ';
}

$return = @fwrite($fp,$head.$errstr."\n");
fclose($fp);
}

return $return;
}

function stderr($errstr)
{
return error_log($errstr,0);
}

## this alias
##
function stderror($errstr)
{
return stderr($errstr);
}

사용법 :

1) 콘솔이나 터미널에서 쉘과 같은 방법으로 작업할 경우

_stderr('아이고 형님 뭔가 잘못되었네요...T.T');

확인방법 :

(표준 출력을 없애고 표준 에러만 출력하도록 함)
$ php -q foo.php >/dev/null
아이고 형님 뭔가 잘못되었네요...T.T
$

2) 아파치 모듈형태로 아파치 에러로그(error_log)에 기록되고자 할 경우

_stderr('앗 DB 연결이 안되네요....T.T');

확인방법 :

$ tail /any/path/to/apache/logs/error_log
...
[Wed Jul 02 02:25:05 2003] [PHP-stderr] [client x.x.x.x] 앗 DB 연결이 안되네요....T.T

EOF
2003년 07월 02일 05:35:13 수(새벽)  from 61.254.75.40
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds