반응형
PHP 함수에서 HTML을 반환하는 방법이 있습니까? (반환 값을 싼값으로 빌드하지 않고)
표준 HTML 블록을 출력하는 데 사용하는 PHP 함수가 있습니다. 현재는 다음과 가변합니다.
<?php function TestBlockHTML ($replStr) { ?>
<html>
<body><h1> <?php echo ($replStr) ?> </h1>
</html>
<?php } ?>
함수 내에서 HTML을 (에코 대신) 반환하고 싶습니다. HTML (위)을 작성하지 않고 수행 할 수있는 방법이 있습니까?
보간을 지원 변수 하는 히어 닥을 사용하여 상당히 깔끔하게 만들 수 있습니다.
function TestBlockHTML ($replStr) {
return <<<HTML
<html>
<body><h1>{$replStr}</h1>
</body>
</html>
HTML;
}
설명서의 경고에주의를 기울이십시오. 닫는 줄에는 공백이 없어야 들여 쓰기 할 수 없습니다.
예, 있습니다 : 다음을 echo
사용하여 ed 텍스트를 효율적으로 사용할 수 있습니다 .ob_start
<?php function TestBlockHTML ($replStr) { ob_start(); ?>
<html>
<body><h1> <?php echo ($replStr) ?> </h1>
</html>
<?php
return ob_get_clean();
} ?>
이것은 강력한 기능의 사용이 아니기 때문에 이것이 나쁜 생각인지 지적하는 사람에게 감사드립니다. 다음과 같은 패키지로 반환 값을 작성하지 않고 PHP 함수에서 HTML을 가져 오는 데 성공했습니다.
function noStrings() {
echo ''?>
<div>[Whatever HTML you want]</div>
<?php;
}
함수를 '호출'하면 :
noStrings();
그리고 다음과 같이 출력됩니다.
<div>[Whatever HTML you want]</div>
이 방법을 사용하면 함수 내에서 PHP 변수를 정의하고이를 HTML 내에서 에코 할 수도 있습니다.
템플릿 파일을 만들고 템플릿을 사용하여 파일을 읽고 업데이트 엔진합니다. 앞으로 코드의 유지 관리 가능성을 높이고 운영과 분리하여 표시 할 수 있습니다.
Smarty 를 사용 예 :
템플릿 파일
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title>{$title}</title></head>
<body>{$string}</body>
</html>
암호
function TestBlockHTML(){
$smarty = new Smarty();
$smarty->assign('title', 'My Title');
$smarty->assign('string', $replStr);
return $smarty->render('template.tpl');
}
또 다른 방법은 file_get_contents () 를 사용 하고 템플릿 HTML 페이지를 사용할 것입니다.
템플릿 페이지
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title>$title</title></head>
<body>$content</body>
</html>
PHP 기능
function YOURFUNCTIONNAME($url){
$html_string = file_get_contents($url);
return $html_string;
}
또는 다음을 사용할 수 있습니다.
<?
function TestHtml() {
# PUT HERE YOU PHP CODE
?>
<!-- HTML HERE -->
<? } ?>
이 함수에서 내용을 얻으려면 다음을 사용하십시오.
<?= file_get_contents(TestHtml()); ?>
그게 다야 :)
타사 도구에 의존하지 않으려면 다음 기술을 사용할 수 있습니다.
function TestBlockHTML($replStr){
$template =
'<html>
<body>
<h1>$str</h1>
</body>
</html>';
return strtr($template, array( '$str' => $replStr));
}
반응형
'ProgramingTip' 카테고리의 다른 글
Cloud Foundry와 Docker의 차이점은 무엇입니까? (0) | 2020.12.07 |
---|---|
nodejs의 여러 도메인에 대한 Access-Control-Allow-Origin 활성화 (0) | 2020.12.06 |
.NET 버전 4.5가 현재 코드를 실행하고 있음을 런타임에 감지합니까? (0) | 2020.12.06 |
원격 src로 펼쳐 태그를 삽입하고 실행될 때까지 기다립니다. (0) | 2020.12.06 |
AngularJs : 모델에 따라 체크 된 라디오 버튼을 설정하는 방법 (0) | 2020.12.06 |