fopen 함수가 바이너리에 안전하지만 바이너리와 텍스트 파일을 구별할 수 있는 윈도우 시스템에서는 b 플래그는 중요합니다. 그리고 fopen 함수를 사용할때 fputs 함수나 fgets 함수 보다는 fread 함수나 fwrite 함수를 사용하는 것이 권장되며, 바이너리와 텍스트 파일을 구분하지 못하는 유닉스에서는 b 플래그가 필요치 않으나 윈도우환경에서는 중요한 부분입니다. 시스템환경이 바뀔 수 있는 부분이 있다면 b 플래그를 사용하는 것이 좋습니다.


fputs 함수나 fgets 함수로 바이너리로 열거나 작성하더라도 바이너리 자료를 유지하지 못하는  경우가 있으므로 바이너리 자료 그대로 유지되는 fread 함수나 fwrite 함수를 이용하는 것을 권고하고 있습니다.

 <?php
 
if($fp = @fopen('readme.txt''ab+')){
       
fwrite($fp"바이너리로 작성합니다.");
       
fclose($fp);
 }
 
 if(
$fp = @fopen('readme.txt''rb')){
       
fread($fp);
       ob_flush();
       
flush();
       
fclose($fp);
 } else {
     print(
'파일을 찾을 수 없습니다.');
 }
 ?>


관련글:2011/04/22 - [phP 함수 레퍼런스/파일 시스템 함수] - 파일 열기 fopen 함수



블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag

댓글을 달아 주세요