'phP 함수 레퍼런스/스트림 함수'에 해당되는 글 2건

php:// 서버 형태인 표준 스트림은 입력(STDIN), 출력(STDPUT), 에러(STDERR) 를 기록하는 스트림입니다.  참고로 PHP 5.2.1 이전 버전일 경우 php:// 에 대해 버그가 존재하므로 STDIN, STDOUT, STDERR 상수를 사용하도록 권고하고 있습니다.


 STDIN

 STDOUT

 STDERR

 표준입력으로 명령 프롬프트(또는 터미널)에 무엇을 입력하거나 POST 메소드로 전송된 자료

 표준출력으로 일반적인 자료를 출력할때

 브라우저로 에러 메시지를 출력하는 대신 표준에러로 에러 메시지를 기록


다음은 입력(STDIN) 사용의 예입니다.


예제 ex#1)

 #!/usr/bin/php -q
 <?php
 
if($fp = @fopen("php://stdin"'r'))
 { 
   
       
fclose($fp);
 }

 ?>


다음은 에러(STDERR) 사용의 예입니다.


예제 ex#2)

 #!/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);
 }
 ?>


예제 ex#3)

 #!/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";
 ?>


다음 그림은 표준입력 결과화면으로 위 내용을 파일로 작성하여 명령 프롬프트(또는 터미널)에서 실행한 화면으로 "Are you sure you want to do this?  Type 'yes' to continue: " 메시지가 출력되는데, 각각 값을 "no"와 "yes" 라고 입력했을 때의 결과화면입니다.




다음은 표준출력 입니다. 표준출력은 일반적인 자료를 출력할때 사용됩니다.


예제 ex#4)

 #!/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"란 글자수입니다.



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

int stream_copy_to_stream ( resource $source , resource $dest [, int $maxlength= -1 [, int $offset= 0 ]] ) (PHP 5)

maxlength 인자는 바이트 수로서 정의하지 않을 경우 모든 내용을 스트림에 복사합니다.

예제(ex #1
 <?php
 $src 
fopen('http://www.example.com''r'
);
 $dest1 fopen('first1k.txt''w'
);
 $dest2 fopen('remainder.txt''w'
);

 echo 
stream_copy_to_stream($src$dest11024) . " bytes \n"
;
 echo 
stream_copy_to_stream($src$dest2) . " bytes \n"
;
 ?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요