복붙노트

어떻게 PHP로 HTML을 되풀이 할 수 있습니까?

PHP

어떻게 PHP로 HTML을 되풀이 할 수 있습니까?

조건 적으로 페이지를 생성하기 위해 HTML을 출력하고 싶습니다. 그래서 PHP 4+에서 HTML의 여러 줄을 반향하는 가장 쉬운 방법은 무엇입니까? Smarty와 같은 템플릿 프레임 워크를 사용해야합니까?

echo '<html>', "\n"; // I'm sure there's a better way!
echo '<head>', "\n";
echo '</head>', "\n";
echo '<body>', "\n";
echo '</body>', "\n";
echo '</html>', "\n";

해결법

  1. ==============================

    1.PHP에서 HTML을 에코하는 몇 가지 방법이 있습니다.

    PHP에서 HTML을 에코하는 몇 가지 방법이 있습니다.

    <?php if(condition){ ?>
         <!-- HTML here -->
    <?php } ?>
    
    if(condition){
         echo "HTML here";
    }
    

    메아리를 사용하여 HTML에서 큰 따옴표를 사용하려면 다음과 같이 singlequote echos를 사용해야합니다.

    echo '<input type="text">';
    

    아니면 다음과 같이 탈출 할 수 있습니다.

    echo "<input type=\"text\">";
    

    템플릿 엔진은 주로 HTML이 포함 된 문서에서 PHP를 사용하는 데 사용됩니다. 사실, PHP의 원래 목적은 템플릿 언어였습니다. 그렇기 때문에 짧은 태그와 같은 변수를 반향하기 위해 PHP에서 사용할 수 있습니다 (예 : ).

    구문을 훨씬 간결하게 만드는 다른 템플릿 엔진 (예 : {{someVariable}})이 있습니다 (예 : Smarty, Twig 등).

    템플릿 엔진을 사용하는 주된 이점은 디자인 (Presentation Logic)을 코딩 (비즈니스 로직)과 분리 된 상태로 유지하는 것입니다. 또한 코드를보다 깔끔하고 쉽게 관리 할 수 ​​있습니다.

    더 이상의 질문이 있으시면 언제든지 의견을 남길 수 있습니다. 더 많은 정보는 PHP 문서에서 얻을 수 있습니다.

    신의 축복!

    참고 : PHP 짧은 태그 는 short_open_tag php.ini 구성 파일 지시문을 사용하여 활성화 된 경우 또는 PHP가 --enable-short-tags 옵션을 사용하여 구성한 경우에만 사용할 수 있으므로 사용하지 않는 것이 좋습니다. 5.4 이후의 설정과 상관없이 사용할 수 있습니다.

  2. ==============================

    2.다음과 같이 해보십시오.

    다음과 같이 해보십시오.

    $variable = <<<XYZ
    <html>
    <body>
    
    </body>
    </html>
    XYZ;
    echo $variable;
    
  3. ==============================

    3.당신은 대안 구문 구문 구문 구조를 사용할 수 있고 PHP에서 벗어날 수 있습니다 :

    당신은 대안 구문 구문 구문 구조를 사용할 수 있고 PHP에서 벗어날 수 있습니다 :

    <?php if ($something): ?>
        <some /> <tags /> <etc />
        <?=$shortButControversialWayOfPrintingAVariable ?>
        <?php /* A comment not visible in the HTML but is a bit of a pain to write */ ?>
    <?php else: ?>
        <!-- else -->
    <?php endif; ?>
    
  4. ==============================

    4.기본적으로 PHP 태그 바깥에 HTML을 넣을 수 있습니다. 또한 로직과 프리젠 테이션을 분리하기 위해 데이터를 표시하기 전에 필요한 모든 데이터 처리를 수행하는 것이 매우 유용합니다.

    기본적으로 PHP 태그 바깥에 HTML을 넣을 수 있습니다. 또한 로직과 프리젠 테이션을 분리하기 위해 데이터를 표시하기 전에 필요한 모든 데이터 처리를 수행하는 것이 매우 유용합니다.

    데이터 표시 자체는 동일한 PHP 파일의 맨 아래에 있거나 대부분 HTML로 구성된 별도의 PHP 파일을 포함 할 수 있습니다.

    나는이 콤팩트 스타일을 선호한다 :

    <?php
        /* do your processing here */
    ?>
    
    <html>
    <head>
        <title><?=$title?></title>
    </head>
    <body>
        <?php foreach ( $something as $item ) : ?>
            <p><?=$item?></p>
        <?php endforeach; ?>
    </body>
    </html>
    

    참고 : 대신 PHP 설정에 따라 를 사용하십시오.

  5. ==============================

    5.나는이 스타일에 부분적이다.

    나는이 스타일에 부분적이다.

      <html>
        <head>
    <%    if (X)
          {
    %>      <title>Definitely X</title>
    <%    }
          else
          {
    %>      <title>Totally not X</title>
    <%    }
    %>  </head>
      </html>
    

    나는 ASP 스타일의 태그를 사용한다. PHP와 HTML의 블렌딩은 내 눈에 읽을 수있는 것처럼 보입니다. 트릭은 <% 및 %> 표시자를 올바르게 표시하는 것입니다.

  6. ==============================

    6.또 다른 접근법은 HTML을 별도의 파일에 넣고이 경우 자리 표시 자 [[content]]로 변경할 영역을 표시하는 것입니다. (str_replace 대신 sprintf를 사용할 수도 있습니다.)

    또 다른 접근법은 HTML을 별도의 파일에 넣고이 경우 자리 표시 자 [[content]]로 변경할 영역을 표시하는 것입니다. (str_replace 대신 sprintf를 사용할 수도 있습니다.)

    $page = 'hello world';
    $content = file_get_contents('html/welcome.html');
    $pagecontent = str_replace('[[content]]',$content,$page);
    echo($pagecontent);
    

    또는 버퍼에 캡처 된 화면에 모든 PHP 항목을 출력 한 다음 HTML을 작성한 다음 PHP 출력을 다시 페이지에 넣을 수 있습니다.

    PHP를 작성하고 캐치 한 다음 다시 쓰는 것이 이상하게 보일 수도 있지만 모든 종류의 서식 지정 작업 (Heredocs 등)을 수행 할 수 있음을 의미하며 페이지 템플리트를 가져 오는 번거 로움없이 올바르게 출력 할 수 있습니다. 그 길. (Joomla CMS는 이렇게합니다, BTW) 즉 :

    <?php
    ob_start();
    echo('hello world');
    $php_output = ob_get_contents();
    ob_end_clean();
    ?>
    <h1> My Template page says </h1>
    <?php
    echo($php_output );
    ?>
    <hr>
    template footer
    
  7. ==============================

    7.Chris B의 답변 외에도 어쨌든 echo를 사용해야하는 경우에도 간단하고 구조적으로 유지하고 , 아래 구문을 사용할 수 있습니다.

    Chris B의 답변 외에도 어쨌든 echo를 사용해야하는 경우에도 간단하고 구조적으로 유지하고 , 아래 구문을 사용할 수 있습니다.

    예를 들어 갤러리의 이미지를 표시하려고합니다.

    foreach($images as $image)
    {
        echo
        '<li>',
            '<a href="', site_url(), 'images/', $image['name'], '">',
                '<img ',
                    'class="image" ',
                    'title="', $image['title'], '" ',
                    'src="', site_url(), 'images/thumbs/', $image['filename'], '" ',
                    'alt="', $image['description'], '"',
                '>',
            '</a>',
        '</li>';
    }
    

    Echo는 여러 개의 매개 변수를 사용하므로 들여 쓰기가 좋으면 모양이 잘 보입니다. 매개 변수와 함께 echo를 사용하면 연결하는 것보다 효과적입니다.

  8. ==============================

    8.시도해보십시오 5 월 .......

    시도해보십시오 5 월 .......

    <?php
    echo <<<HTML
    
    your html tags here
    
    HTML;
    ?>
    
  9. ==============================

    9.HTML을 반향 출력하지 않는다.

    HTML을 반향 출력하지 않는다.

    당신이 사용하고 싶다면

    <?php echo "<h1>  $title; </h1>"; ?>
    

    당신은 이렇게해야합니다 :

    <h1><?= $title;?></h1>
    
  10. ==============================

    10.

    $enter_string = '<textarea style="color:#FF0000;" name="message">EXAMPLE</textarea>';
    
    echo( 'Echo as HTML' . htmlspecialchars( (string)$enter_string ) );
    
  11. ==============================

    11.다음과 같이 print 함수를 사용하여 PHP 파일의 텍스트를 echo합니다.

    다음과 같이 print 함수를 사용하여 PHP 파일의 텍스트를 echo합니다.

    <?php
    
      print('
    
        <div class="wrap">
    
          <span class="textClass">TESTING</span>
    
        </div>
    
    
      ')
    
    ?>
    
  12. ==============================

    12.

    echo '
    <html>
    <body>
    </body>
    </html>
    ';
    

    또는

    echo "<html>\n<body>\n</body>\n</html>\n";
    
  13. from https://stackoverflow.com/questions/1100354/how-can-i-echo-html-in-php by cc-by-sa and MIT license