source

html의 php 변수는 다음과 같습니다.html의 php 변수는 다음과 같습니다.

factcode 2023. 1. 19. 20:58
반응형

html의 php 변수는 다음과 같습니다.

저는 HTML과 PHP를 혼합하여 작업합니다.대부분의 경우 몇 개의 PHP 변수가 포함된 솔리드 HTML을 원하기 때문에 코드는 다음과 같습니다.

<tr><td> <input type="hidden" name="type" value="<?php echo $var; ?>" ></td></tr>

꽤 못생겼죠좀 더 짧게, 더 짧게, 다음과 같은 것은 없습니까?

<tr><td> <input type="hidden" name="type" value="$$var" ></td></tr>

이것은 가능하지만, 당신은 그 안에 갇히게 됩니다.""(모두 교환할 필요가 있습니다).''레이아웃이 없어졌습니다.

echo "<tr><td> <input type="hidden" name="type" value="$var" ></td></tr>"

더 좋은 건 없나요?

코드에는 짧은 태그 버전이 있으며, 오래된 권장 사항에도 불구하고 현재 완전히 사용할 수 있습니다.

<input type="hidden" name="type" value="<?= $var ?>" >

PHP 5.4 이전 버전에서는 php 구성에서 짧은 태그를 활성화해야 합니다.입력한 코드와 동일하게 기능합니다.다음 행은 내부 구현과 동일합니다.

<?= $var1, $var2 ?>
<?php echo $var1, $var2 ?>

이것이 빌트인 솔루션입니다.출력에 데이터를 쉽게 삽입할 수 있는 서드파티 템플릿 라이브러리가 많이 있습니다.Smarty를 도입하는 것이 좋습니다.

GREEDOC 구문을 사용합니다.단일 따옴표와 이중 따옴표, 변수 및 함수 호출을 변경하지 않고 에스케이프하지 않은 HTML 마크업으로 혼재시킬 수 있습니다.

echo <<<MYTAG
  <tr><td> <input type="hidden" name="type" value="$var1" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var2" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var3" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var4" ></td></tr>
MYTAG;

Smarty 템플릿엔진을 프로젝트에 표준 php lib로 채택해야 한다고 생각합니다.

http://www.smarty.net/

Name: {$name|capitalize}<br>

쇼트 태그를 사용하지 않는 것이 좋습니다.PHP 쇼트 태그를 사용할 있습니까?를 참조해 주십시오.자세한 것은, 을 참조해 주세요.

개인적으로 HTML과 PHP를 이렇게 섞어도 상관없습니다.

<a href="<?php echo $link;?>">link description</a>

구문 하이라이팅이 좋은 코드 에디터가 있으면 읽을 수 있을 것 같습니다.HTML을 PHP로 에코하기 시작하면 HTML을 강조 표시하는 구문의 장점을 모두 잃게 됩니다.HTML 에코의 또 다른 단점은 따옴표가 있는 것이므로 IMHO의 판독성이 훨씬 떨어집니다.

echo '<a href="'.$link.'">link description</a>';

간단한 에코와 간단한 루프를 PHP로 하고 나머지는 HTML로 하는 것의 가장 큰 장점은 들여쓰기가 일관된다는 것입니다.그것은 결국 가독성/스캔성을 향상시킵니다.

보기용으로 보다 콤팩트한 구문을 제공하는 템플릿 시스템이 많이 있습니다.스마티는 존경스럽고 인기가 있다. 문서에는 기타 10개의 목록이 있습니다.

HTML 섹션 앞의 php 섹션에서 sprinf()를 사용하여 변수에서 상수 문자열을 만듭니다.

$mystuff = sprinf("My name is %s and my mother's name is %s","Suzy","Caroline");

그런 다음 HTML 섹션에서 다음과 같은 원하는 작업을 수행할 수 있습니다.

<p>$mystuff</p> 

Smarty와 같은 템플릿 엔진을 사용하려고 했는데, 제 사용 사례는 매우 기본적이기 때문에 이 클래스를 만들었습니다.도움이 되었으면 합니다.

class HtmlRender
{
    public function __construct($template, array $data)
    {
        $this->template = $template;
        $this->data = $data;
    }
    private static function fileGetContentsUFT8($file)
    {
        $content = file_get_contents($file);
        return mb_convert_encoding($content, "HTML-ENTITIES", "UTF-8");
    }
    public function render()
    {
        $template = self::fileGetContentsUFT8($this->template);
        foreach ($this->data as $key => $value) {
            $template = str_replace('{{ ' . $key . ' }}', $value, $template);
        }
        return $template;
    }
}

사용법은 다음과 같습니다.

 $renderer = new HtmlRender(
            __DIR__ . '/templates/account.create.html',
            [
                'name' => $clientName,
                'email' => $clientEmail
            ]
  );
  $body = $renderer->render();

또한 Html 내부에서는 다음 구문을 사용합니다.

<p>Your name is: <span> {{ name }} </span></p>
<p>Your email is: <span> {{ email }} </span></p>

언급URL : https://stackoverflow.com/questions/2150238/php-variable-in-html-no-other-way-than-php-echo-var

반응형