php
PHP - 표준 I/O 스트림 조작
php:// 서버 형태인 표준 스트림은 입력(STDIN), 출력(STDPUT), 에러(STDERR) 를 기록하는 스트림입니다.
참고로 PHP 5.2.1 이전 버전일 경우 php:// 에 대해 버그가 존재하므로 STDIN, STDOUT, STDERR 상수를 사용하도록 권고하고 있습니다.
다음은 입력(STDIN) 사용 예제입니다.
다음은 에러(STDERR) 사용의 예입니다.
다음 그림은 표준입력 결과화면으로 위 내용을 파일로 작성하여 명령 프롬프트(또는 터미널)에서 실행한 화면으로 "Are you sure you want to do this? Type 'yes' to continue: " 메시지가 출력되는데, 각각 값을 "no"와 "yes" 라고 입력했을 때의 결과 화면입니다.
다음은 표준출력 입니다. 표준출력은 일반적인 자료를 출력할 때 사용됩니다.
다음 화면에서 표시되는 line: "12"란 글자 수입니다.
참고로 PHP 5.2.1 이전 버전일 경우 php:// 에 대해 버그가 존재하므로 STDIN, STDOUT, STDERR 상수를 사용하도록 권고하고 있습니다.
상 수 | 설 명 |
---|---|
STDIN | 표준 입력으로 명령 프롬프트(또는 터미널)에 무엇을 입력하거나 POST 메소드로 전송된 자료 |
STDOUT | 표준 출력으로 일반적인 자료를 출력할 때 |
STDERR | 브라우저로 에러 메시지를 출력하는 대신 표준 에러로 에러 메시지를 기록 |
다음은 입력(STDIN) 사용 예제입니다.
#!/usr/bin/php -q
<?php
if($fp = @fopen("php://stdin", 'r'))
{
fclose($fp);
}
?>
다음은 에러(STDERR) 사용의 예입니다.
#!/usr/bin/php -q
<?php
if($fp = @fopen('readme.txt', 'ab'))
{
fwrite($fp, "라인을 추가합니다.");
fclose($fp);
}
else
{
// 브라우저에 출력하면서 기록합니다.
$errmsg = "파일 열기에 실패하였습니다.";
error_log($errmsg, 3, "php://stderr");
exit($errmsg);
}
?>
#!/usr/bin/php -q
<?php
echo "Are you sure you want to do this? Type 'yes' to continue: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != 'yes') {
echo "Error!\n";
exit;
}
echo "\n";
echo "Thank you, continuing...\n";
?>
다음은 표준출력 입니다. 표준출력은 일반적인 자료를 출력할 때 사용됩니다.
#!/usr/bin/php -q
<?php
echo "Are you sure you want to do this? Type 'yes' to continue: ";
$handle = fopen ("php://stdout","r");
$line = fwrite($handle, "Thank you....");
echo "\n";
echo "line:" . $line;
?>
다음 화면에서 표시되는 line: "12"란 글자 수입니다.
0 댓글