2015-01-05 9 views
0

다른 프로그래머의 코드를 읽는 동안 <<<H.TML 기호가 나타납니다. 내 동료는 PHP 파일 내에서 HTML을 작성하는 데 사용되는 것이라고 말했다.이 기호 "<<< HTML"은 무엇을 의미합니까?

사용법에 대한 자세한 정보를 찾으려고했지만 많이 찾지 못했습니다. 아무에게 나에게 그것이 어떻게 작동하고 그것이 무엇이라고 불렀는지 설명해 주시겠습니까? 당신은 당신이 heredoc syntax 구문을 사용할 수 있습니다 PHP 변수에 문자열로 큰 콘텐츠를 사용하고자 할 때

public function SetContent($page = '') { 

    $this->_header->SetPageNavigation($page) ; 
    $budgetHTML = ''; 

    $signup1 = ''; 
     $GetHeader = $this->_header->GetHeader() ; 
     $GetFooter = $this->_footer->GetFooter() ; 

    $DocType = <<<HTML 

<!DOCTYPE html> 

<!--[if IE 8]> <html class="no-js ie8 ie" lang="en"> <![endif]--> 

<!--[if IE 9]> <html class="no-js ie9 ie" lang="en"> <![endif]--> 

<!--[if gt IE 9]><![endif]--> 

HTML; 
     $this->_html = sprintf("{$DocType}<html>"); 
     $this->_html .= sprintf("%s", $this->_head->GetHTML()); 
     $bg=$this->_common->getBgImage(); 
     $bg=json_decode($bg); 

    if(!empty($bg->BGImage)&&(file_exists($GLOBALS['DocumentRoot'].'/bgImages/'.$bg->BGImage))) 
    { 
     $backgroundImage='background: url('.$GLOBALS['DOCUMENT_ROOT'].'/bgImages/'.$bg->BGImage.') no-repeat fixed top center;background-size: cover !important;'; 
    } 
    else 
    { 
     $backgroundImage=''; 
    } 
    $this->_html .= sprintf('<body style="'.$backgroundImage.'" > 

     <noscript> 

      <h1 style="color:red; text-align:center; padding-top:100px;">This page needs JavaScript activated to work</h1> 

      <style>div { display:none; }</style> 

     </noscript> 
<div class="loading"><img src="'.$GLOBALS['RootURL'].'images/main-loader.GIF" width="128" height="128" ></div> 
     <div id="wrapper"><div class="page-bg">%s%s%s%s<div class="clear"></div></div></div>', $GetHeader, $budgetHTML, $this->_maincontenthtml, $GetFooter); 

    $this->_html .= sprintf("</body>"); 
} 
+0

경우이 코드를 발견 했는가? 링크를 공유 할 수있는 오픈 소스 저장소에서 사용할 수 있습니까? – callmekatootie

답변

2

을 찾고 무엇 에 heredoc라고 부릅니다.

따옴표를 사용하지 않으려면 긴 문자열 리터럴을 선언하는 데 사용됩니다. PHP는 문서에서 : 귀하의 경우

$str = <<<EOD 
Example of string 
spanning multiple lines 
using heredoc syntax. 
EOD; 

, 그들은 대신 EOD의 심볼에 대한 HTML을 사용하고 있습니다. 실제로는 HTML과 전혀 관계가 없지만 다른 문자열 리터럴 값과 마찬가지로 원할 경우 큰 HTML 블록을 변수에 지정할 수 있습니다.

+0

기본적으로 XML 태그와 비슷합니다. 우리는 그들을 우리가 좋아하는 방식으로 명명 할 수 있습니다. –

+0

@NuttyProgrammer 설명서에서 "식별자는 PHP의 다른 레이블과 동일한 명명 규칙을 따라야합니다. 영숫자와 밑줄 만 포함해야하며 숫자가 아닌 문자 또는 밑줄로 시작해야합니다." – Brad

+0

알았습니다. 고마워. –

2

네, PHP 구문 사용하고

예 :

<?php 
$str = <<<EOD 
Example of string 
spanning multiple lines 
using heredoc syntax. 
EOD; 
0

heredoc.it의 사람들은 PHP 내에서 많은 양의 텍스트를 쉽게 작성할 수 있지만 끊임없이 이스케이프 할 필요는 없습니다 .Heredoc은 가독성과 유지 보수성이 높아 인용 문자열에 대한 훌륭한 대안입니다. 따옴표를 이스케이프 할 필요가 없으며 IDE 또는 텍스트 편집기가 올바른 구문 강조를 사용합니다.

매우 일반적인 예 : PHP 내에서 HTML에서 메아리 :

$html = <<<HTML 
<div class='something'> 
<ul class='mylist'> 
    <li>$something</li> 
    <li>$whatever</li> 
    <li>$testing123</li> 
</ul> 
</div> 
HTML; 
// sometime later 
echo $html; 

Also prefer

+1

고마워. 나는 또한 그것이 코드 가독성을 높이는 것으로 생각한다. –

+0

@ Nutty Programmer : 당신이 유용하다면 upvote하십시오. – Priyank

+0

죄송합니다, 저의 명성은 너무 낮아 답변을 upvote 할 수 없습니다. –

관련 문제