Programming

PHP "if"문에 HTML을 포함시킬 수 있습니까?

procodes 2020. 7. 29. 21:36
반응형

PHP "if"문에 HTML을 포함시킬 수 있습니까?


가능하다면 HTML if 문 안에 HTML을 삽입하고 싶습니다. 가능한 경우 HTML if 문이 실행될 때 HTML 앞에 HTML이 나타날 것이라고 생각하기 때문입니다.

데이터베이스의 테이블에 액세스하려고합니다. 데이터베이스의 모든 테이블을 나열하는 풀다운 메뉴를 HTML로 만들었으며 풀다운에서 테이블을 선택하면 제출 버튼을 누릅니다.

isset 함수를 사용하여 제출 버튼이 눌 렸는지 확인하고 PHP에서 루프를 실행하여 데이터베이스의 테이블 내용을 표시합니다. 따라서이 시점에서 전체 테이블이 있지만이 테이블에서 더 많은 쿼리를 실행하고 싶습니다. 따라서 if 문에서 더 많은 HTML을 실행하려고하는 이유입니다. 궁극적으로, 나는 테이블에서 내용을 업데이트하거나 (한 행 이상 또는 여러 행으로) 하나 이상의 행을 삭제하려고합니다. 내가하려는 것은 테이블의 열에 해당하는 다른 풀다운을 생성하여 테이블을 쉽게 검색하고 테이블의 내용을 업데이트하거나 삭제할지 여부에 해당하는 라디오 버튼을 만드는 것입니다.


<?php if($condition) : ?>
    <a href="http://yahoo.com">This will only display if $condition is true</a>
<?php endif; ?>

요청에 따라 elseif와 else가 있습니다 ( 문서 에서도 찾을 수 있습니다 )

<?php if($condition) : ?>
    <a href="http://yahoo.com">This will only display if $condition is true</a>
<?php elseif($anotherCondition) : ?>
    more html
<?php else : ?>
    even more html
<?php endif; ?>

그렇게 간단합니다.

조건이 만족되는 경우에만 HTML이 표시됩니다.


예,

<?php
if ( $my_name == "someguy" ) {
    ?> HTML GOES HERE <?php;
}
?>

예.

<?  if($my_name == 'someguy') { ?>
        HTML_GOES_HERE
<?  } ?>

PHP close / open 태그를 사용하는 것은 두 가지 이유 때문에 좋은 해결책이 아닙니다. 일반 HTML로 PHP 변수를 인쇄 할 수없고 코드를 읽기 어렵게 만듭니다 (다음 코드 블록은 대괄호로 시작 }하지만 독자는 이전에 뭔지 모르겠다).

heredoc 구문 을 사용하는 것이 좋습니다 . 다른 언어 (bash와 같은)와 동일한 개념입니다.

 <?php
 if ($condition) {
   echo <<< END_OF_TEXT
     <b>lots of html</b> <i>$variable</i>
     lots of text...
 many lines possible, with any indentation, until the closing delimiter...
 END_OF_TEXT;
 }
 ?>

END_OF_TEXT구분 기호입니다 (기본적으로 EOF, EOT와 같은 텍스트 일 ​​수 있음). 사이의 모든 것은 큰 따옴표처럼 PHP에서 문자열로 간주되므로 변수를 인쇄 할 수는 있지만 따옴표를 이스케이프 처리하지 않아도되므로 HTML 속성을 인쇄하는 데 매우 편리합니다.

닫는 구분 기호는 줄의 시작 부분에서 시작해야하며 세미콜론은 다른 문자 ( END_OF_TEXT;) 없이 바로 뒤에 배치해야합니다 .

작은 따옴표 ( ') 로 문자열의 동작이있는 Heredoc을 nowdoc 이라고 합니다 . nowdoc 내부에서는 구문 분석이 수행되지 않습니다. heredoc과 같은 방식으로 사용하며 여는 구분 기호를 작은 따옴표로 묶습니다 echo <<< 'END_OF_TEXT'.


조건이 원하는 값과 같으면 PHP 문서는 "include"를 실행하고 include는 해당 문서를 현재 창에 추가합니다.

`

<?php
$isARequest = true;
if ($isARequest){include('request.html');}/*So because $isARequest is true then it will include request.html but if its not a request then it will insert isNotARequest;*/
else if (!$isARequest) {include('isNotARequest.html')}
?>

`


<?php if ($my_name == 'aboutme') { ?>
    HTML_GOES_HERE
<?php } ?>

나는 이것이 오래된 게시물이라는 것을 알고 있지만 html과 php를 섞지 말 것을 제안하는 단 하나의 답변 만 있다는 것이 정말 싫어요. 콘텐츠를 혼합하는 대신 템플릿 시스템을 사용하거나 기본 템플릿 시스템 자체를 만들어야합니다.

PHP에서

<?php 
  $var1 = 'Alice'; $var2 = 'apples'; $var3 = 'lunch'; $var4 = 'Bob';

  if ($var1 == 'Alice') {
    $html = file_get_contents('/path/to/file.html'); //get the html template
    $template_placeholders = array('##variable1##', '##variable2##', '##variable3##', '##variable4##'); // variable placeholders inside the template
    $template_replace_variables = array($var1, $var2, $var3, $var4); // the variables to pass to the template
    $html_output = str_replace($template_placeholders, $template_replace_variables, $html); // replace the placeholders with the actual variable values.
  }

  echo $html_output;
?>

HTML에서 (/path/to/file.html)

<p>##variable1## ate ##variable2## for ##variable3## with ##variable4##.</p>

The output of this would be:

Alice ate apples for lunch with Bob.

참고URL : https://stackoverflow.com/questions/722379/can-html-be-embedded-inside-php-if-statement

반응형