Thursday, May 03, 2007
PHP 5] 운영체제에 맞게 개행문자 출력 상수; 자동 CRLF 줄바꿈; DOS Windows Newline
운영체제의 종류에 맞는 개행문자를 자동으로 출력하는 PHP 내장 상수(Constant)가 있더군요. PHP_EOL 입니다. EOL 은 "End of Line (행의 끝)"의 약자입니다.
"\n" 대신에 PHP_EOL 을 사용하면, 유닉스/리눅스에서는 LF (\n) 로 줄바꿈이 되고, 도스/윈도우에서는 CR LF (\r\n) 로 줄바꿈 문자가 자동으로 변경됩니다.
그러나 PHP_EOL 이런 상수를 "\n" 대신 사용하려면 타이핑하기도 힘들고 해서 별로 실용성은 없을 것입니다. Perl이나 C언어처럼 언어 내부적으로 개행문자를 자동 판단해 주었으면 좋겠습니다.
아래의 예제 소스를
파일명: eol.php
윈도우 도스창(정식명칭은 명령프롬프트)에서 다음과 같이 실행 결과를 out.html 이라는 파일로 만든 후, 헥사 뷰어로 보면
옆으로스크롤가능
이제 0D 0A 즉 CR LF 로 줄바꿈되어 있습니다.
PHP_EOL 상수가 아닌, "\n" 으로 줄바꿈하면, 윈도우에서도 리눅스에서처럼, 그냥 0A (LF) 로 줄바꿈이 되어 버립니다.
▶▶ PHP 예제] 도스 줄바꿈, 유닉스 개행문자 출력; CR LF
"\n" 대신에 PHP_EOL 을 사용하면, 유닉스/리눅스에서는 LF (\n) 로 줄바꿈이 되고, 도스/윈도우에서는 CR LF (\r\n) 로 줄바꿈 문자가 자동으로 변경됩니다.
그러나 PHP_EOL 이런 상수를 "\n" 대신 사용하려면 타이핑하기도 힘들고 해서 별로 실용성은 없을 것입니다. Perl이나 C언어처럼 언어 내부적으로 개행문자를 자동 판단해 주었으면 좋겠습니다.
아래의 예제 소스를
PHP_EOL 사용 예제
파일명: eol.php
<?php
echo "안녕하세요<br />" . PHP_EOL;
echo "반갑습니다<br />" . PHP_EOL;
?>
echo "안녕하세요<br />" . PHP_EOL;
echo "반갑습니다<br />" . PHP_EOL;
?>
윈도우 도스창(정식명칭은 명령프롬프트)에서 다음과 같이 실행 결과를 out.html 이라는 파일로 만든 후, 헥사 뷰어로 보면
옆으로스크롤가능
D:\Z>php eol.php
안녕하세요<br />
반갑습니다<br />
D:\Z>php eol.php > out.html
D:\Z>hexdump.pl out.html
00000000: BE C8 B3 E7 C7 CF BC BC BF E4 3C 62 72 20 2F 3E ..........<br />
00000010: 0D 0A B9 DD B0 A9 BD C0 B4 CF B4 D9 3C 62 72 20 ............<br
00000020: 2F 3E 0D 0A 0D 0A />....
D:\Z>
안녕하세요<br />
반갑습니다<br />
D:\Z>php eol.php > out.html
D:\Z>hexdump.pl out.html
00000000: BE C8 B3 E7 C7 CF BC BC BF E4 3C 62 72 20 2F 3E ..........<br />
00000010: 0D 0A B9 DD B0 A9 BD C0 B4 CF B4 D9 3C 62 72 20 ............<br
00000020: 2F 3E 0D 0A 0D 0A />....
D:\Z>
이제 0D 0A 즉 CR LF 로 줄바꿈되어 있습니다.
PHP_EOL 상수가 아닌, "\n" 으로 줄바꿈하면, 윈도우에서도 리눅스에서처럼, 그냥 0A (LF) 로 줄바꿈이 되어 버립니다.
▶▶ PHP 예제] 도스 줄바꿈, 유닉스 개행문자 출력; CR LF
tag: php
PHP
좋은 정보 감솨합니다. ^^
<< Home