웹개발 - PHP 프로그램 개발 강의
글수 707
히어닥(Heardoc)이란..
히어닥을 사용해서 문자열을 처리하면.. 여러줄을 표현하기가 쉽고..
파서에러에 겁먹지 않아도.. (좋습니까..?)
역슬래시, $ 등등의 특수문자를 간단하게(그냥 씁니다) 표현할 수 있습니다.
거의 모든분들이 알고 계시는 것 같지만.. 써먹지를 않는것들 같아서.
일단 히어닥 선언은
<<<ABC
로 시작합니다.
ABC부분은 임의로 설정해주고..
끝은
ABC;
로 끝냅니다.
위에서 선언한 문자를 다시한번 써주고 세미콜론(;)하나를..
아무튼 폼태그 부분에 써먹으니깐 편리한 것 같아요.
예제? : http://pain.new21.org/phpstudy/login.php
<style type="text/css">
.login1{font-size:9pt; font-family:Verdana; font-weight:bold; color:#777777;}
.login2{font-size:9pt; font-family:Verdana; font-weight:bold; color:#555555;}
.login3{border-width:1pt; border-color:#DDDDDD; bgcolor:#EEEEEE; font-size:9pt; color:#555555;}
.login4{border-width:1pt; border-color:#DDDDDD; background:#EEEEEE; font-size:9pt; color:#555555;}
.login5{font-size:9pt; font-family:Verdana; font-weight:bold; color:#555555;}
</style>
<table border="1" bordercolor="#BBBBBB" bordercolordark="#CCCCCC" bordercolorlight="#DDDDDD" width="225">
<tr>
<td bgcolor="#EEEEEE" style="border-width:1px; border-color:#DDDDDD; border-style:solid;" align="center" valign="middle">
<?php
echo <<<FORM
<form action="$_SERVER[PHP_SELF]" method="POST">
<input class="login4" type="password" name="pwpost" size="15" maxlength="8">
<input class="login3" type="submit" value="로그인">
<input class="login3" type="reset" value="지우기">
FORM;
echo ("Message : ");
$pass = "암호";
if ($_POST['pwpost'] == "") {
echo ("패스워드 입력");
} else if ($_POST['pwpost'] == $pass) {
echo ("로그인 성공!");
} else if ($_POST['pwpost'] !== $pass) {
echo ("로그인 실패!");
} else {
echo ("로그인 에러!");
}
?>
</td>
</tr>
</table>
꼭 히어닥을 써야할 건 없지만.. 이렇게 하니깐 편하던데요. .ㅎㅎ
좋은 정보(?)가 되었기를..
히어닥을 사용해서 문자열을 처리하면.. 여러줄을 표현하기가 쉽고..
파서에러에 겁먹지 않아도.. (좋습니까..?)
역슬래시, $ 등등의 특수문자를 간단하게(그냥 씁니다) 표현할 수 있습니다.
거의 모든분들이 알고 계시는 것 같지만.. 써먹지를 않는것들 같아서.
일단 히어닥 선언은
<<<ABC
로 시작합니다.
ABC부분은 임의로 설정해주고..
끝은
ABC;
로 끝냅니다.
위에서 선언한 문자를 다시한번 써주고 세미콜론(;)하나를..
아무튼 폼태그 부분에 써먹으니깐 편리한 것 같아요.
예제? : http://pain.new21.org/phpstudy/login.php
<style type="text/css">
.login1{font-size:9pt; font-family:Verdana; font-weight:bold; color:#777777;}
.login2{font-size:9pt; font-family:Verdana; font-weight:bold; color:#555555;}
.login3{border-width:1pt; border-color:#DDDDDD; bgcolor:#EEEEEE; font-size:9pt; color:#555555;}
.login4{border-width:1pt; border-color:#DDDDDD; background:#EEEEEE; font-size:9pt; color:#555555;}
.login5{font-size:9pt; font-family:Verdana; font-weight:bold; color:#555555;}
</style>
<table border="1" bordercolor="#BBBBBB" bordercolordark="#CCCCCC" bordercolorlight="#DDDDDD" width="225">
<tr>
<td bgcolor="#EEEEEE" style="border-width:1px; border-color:#DDDDDD; border-style:solid;" align="center" valign="middle">
<?php
echo <<<FORM
<form action="$_SERVER[PHP_SELF]" method="POST">
<input class="login4" type="password" name="pwpost" size="15" maxlength="8">
<input class="login3" type="submit" value="로그인">
<input class="login3" type="reset" value="지우기">
FORM;
echo ("Message : ");
$pass = "암호";
if ($_POST['pwpost'] == "") {
echo ("패스워드 입력");
} else if ($_POST['pwpost'] == $pass) {
echo ("로그인 성공!");
} else if ($_POST['pwpost'] !== $pass) {
echo ("로그인 실패!");
} else {
echo ("로그인 에러!");
}
?>
</td>
</tr>
</table>
꼭 히어닥을 써야할 건 없지만.. 이렇게 하니깐 편하던데요. .ㅎㅎ
좋은 정보(?)가 되었기를..
2004.07.14 12:46:32 (*.158.70.224)
주로 에디터(Vi or Editplus or UltraEdit) 등에서 문법에 따라 자동 들여쓰기(Indent) 기능을 사용하시는데요.
히어닥(Heardoc)을 사용하게 되면 문제점은 Heardoc이 끝나는 부분을 나타내는 부분(e.g. FORM; EOF;) 의 앞에 들여쓰기가 되어있다면 파서 에러가 납니다.
오래전부터 쓰던 거지만 히어닥(Heardoc)이라고 부르는지는 몰랐네요. 감사합니다.
히어닥(Heardoc)을 사용하게 되면 문제점은 Heardoc이 끝나는 부분을 나타내는 부분(e.g. FORM; EOF;) 의 앞에 들여쓰기가 되어있다면 파서 에러가 납니다.
오래전부터 쓰던 거지만 히어닥(Heardoc)이라고 부르는지는 몰랐네요. 감사합니다.
2004.07.14 21:01:16 (*.179.65.1)
펄에서 꽤 본 구문이죠... :)
그리고... <<<EOT로 시작했을 경우 EOT 뒤에 세미콜론을 붙이지 않아도 관계 없습니다. 다음과 같은 구문이 된다는 거지요.
$str = <<<EOT
something
anything
EOT
. "\neverything";
EOT 뒤에 ; 말고 다른 토큰이 들어 가도 되는 지는 모르겠습니다... ;)
그리고... <<<EOT로 시작했을 경우 EOT 뒤에 세미콜론을 붙이지 않아도 관계 없습니다. 다음과 같은 구문이 된다는 거지요.
$str = <<<EOT
something
anything
EOT
. "\neverything";
EOT 뒤에 ; 말고 다른 토큰이 들어 가도 되는 지는 모르겠습니다... ;)


