2012-03-06 2 views
0

PHP가 새로워졌습니다. 문법에 관한 서적을 읽었을지라도 heredoc에 대한 좌절스러운 문제가 있습니다. 아래 텍스트는 들여 쓰기가되지 않아야합니다.heredoc가 들여 쓰기 또는 작동하지 않아야 함

<?php 

$text="Mike's"; 

echo <<<_END 

<!--END is just like double quoteing a var.. 
You can use single/double quotes without having to escape them first; inside 
END. The last _END tag, has to be on the start of new line with nothing allowed 
to procede it, not even whitespace--> 

This is the $text 'first line'. 

This is the $text 'second line'. 

This is the $text 'third line'. 
_END; 
?> 
+2

무엇을 기대 했습니까? 이거 말고? http://codepad.org/kp7Ba18a – Gordon

+0

예, 책의 제안대로? –

+1

책의 내용은 무엇입니까? 답변을 원할 경우 실제 질문을해야합니다. 지금 당장 당신은 단지 "doesnt work"라고 말하고 있지만 그것이 작동하지 않는 방법이나 오히려 출력을 기대하는 방법을 말하지 않습니다. 링크드 코드 패드의 출력은 어떻게 보일 것인가입니다. 당신은 그것이 들여 쓰기되어야하고 어떻게해야한다고 생각합니까? – Gordon

답변

2

"<! -"의 존재에 따라 html 페이지가 생성됩니다.

당신은 잘못된 문제를보고 있습니다, heredocs는 공백을 수정하지 않습니다. 그러나 당신이 달리 지정하지 않으면 html은 그것을 무시합니다. 페이지 소스를 확인하기 만하면 예상 할 수 있습니다. 당신이 공백을 보존하려면

- 실제 마크 업 사용하여 더 정확하게 < 사전> 태그를 사용하거나

<pre> 
This 
is 
3 lines 
<pre> 

또는

This<br> 
is<br> 
3 lines<br> 

또는

<p>This<p> 
<p>is</p> 
<p>3 line</p> 

은 모두 3 줄로 렌더링됩니다.

w3 whitespace reference

+0

예, 감사합니다. 그 말은 그 규칙에 대한 상기시켜주는 것이 었습니다. 이 책은 END 태그가 그것을 모두 큰 따옴표, 대문자, 공백, 들여 쓰기 및 줄 바꿈으로 처리하므로 HTMl이 태그로 인해 관련성이 없다고 생각한다는 사실을 알았습니다. –

관련 문제