개발 꿀팁/PHP

PHP/HTML 혼서의 네 가지 방식

Jammie 2022. 7. 13. 14:25
반응형

PHP는 하나의 백엔드 언어로 브라우저에 출력하기 위해 불가피하게 HTML 코드를 출력합니다. 아래에 제가 사용한 세 가지 PHP/HTML 믹싱 방법을 소개합니다.

1.싱글/더블따옴표 포위법
이것은 최초급의 방법인데, 용법은 아래와 같다

 1 <?php
 2 echo '
 3 <!DOCTYPE html>
 4 <html>
 5     <head>
 6         <title> </title>
 7     </head>
 8     <body>
 9         <span>테스트 페이지</span>
10     </body>
11 </html>
12 ';
13 ?>

이렇게 하는 것이 가장 간단한 방법인데, 직접 따옴표로 포장하면 된다

큰따옴표와 작은따옴표의 구별에 대해서는, 전자의 해석 따옴표 내의 변수에 관한 것이다.후자는 따옴표 내의 변수를 해석하지 못하므로, 아래의 예를 참조한다

1 <?php
2 $Content='Hello!';
3 echo "$Content";
4 echo '<br>';
5 echo '$Content';
6 ?>

출력

1 Hello!
2 $Content

따라서 큰따옴표로 둘러싸인 문자열의 변수명은 변수값으로 자동으로 해석되지만, 작은따옴표로 둘러싸인 문자열의 변수명은 그대로 표시됩니다.

이렇게 쓴 글씨의 결점은 두 가지이다.

1.출력내용에 싱글/더블 따옴표가 포함되어 있으면 PHP는 따옴표가 프로그램에 속하는지 출력에 속하는지 판단할 수 없기 때문에 처리하기 어렵습니다.용서해 주십시오, 그래서 오보를 내겠습니다.

2.SublimeText와 같은 일부 현대 텍스트 편집기는 따옴표로 둘러싸인 출력에 대해 말할 수 없다.쉐이딩하기, 포맷이 나오면문제는 발견하기 매우 어려울 것이다.SublimeText3의 한 컷 캡처로 위는 정상 착색, 아래는 따옴표로 둘러싸인 착색



2.HEREDOC/NOWDOC 사용
HEREDOC와 NOWDOC는 PHP 5.3에서 지원하는 새로운 기능으로 프로그램에서 사용자 정의 기능을 사용할 수 있습니다텍스트에 대한 태그는 H를 둘러싸인칭은 HEREDOC와 NOWDOC의 관계는 이중따옴표와 단일따옴표와 같이 전자는 블록 내의 변수를 해석하고 후자는 블록 내의 변화를 해석하지 않는다헤아리다

HEREDOC과 NOWDOC의 용법을 소개하겠습니다

 1 <?php
 2 $Content='Hello!';
 3 
 4 //아래에 HEREDOC라고 써 있는데, 라벨은 어떤 문자열이든 커스터마이징 할 수 있지만, 처음의 라벨은 끝의 라벨과 동일해야 합니다
 5 echo <<<LABEL
 6 $Content
 7 LABEL;
 8 //마무리 방법: 다른 줄을 지어 LABEL을 붙인다.끝의 앞과 뒤에 문자를 삽입하지 마십시오. 공백도 사용할 수 없습니다
10 echo '<br>';//편하게 갈 수 있도록
11 
12 //NOWDOC와 HEREDOC의 필기 방식 차이는 NOWDOC의 식별자를 홑따옴표로 둘러싸야 한다는 데 있다
13 echo <<<'LABEL'
14 $Content
15 LABEL;
16 //기타와 다름없다
17 
18 
19 ?>

https://wiki.php.net/rfc/heredoc-with-double-quotes의 wiki:PHP.net를 참고하면 된다.

HEREDOC/NOWDOC로 잘 써내려가는 따옴표 문제를 해결했지만 여전히 문법적 색칠이 실패하는 문제를 해결하지 못했습니다.

3.HTML에 PHP블럭 내장(추천)
이것은 매우 적절한 방법으로 WordPress 템플릿과 같은 경우에 널리 사용됩니다. 쓰기에도 편리합니다. 출력해야 할 곳에 직접 코드를 적어두면 됩니다. 다음과 같습니다.이렇게

 1 <?php
 2 
 3 //먼저 여기에 관련 호출 코드를 적어주세요
 4 function OutputTitle(){
 5     echo 'TestPage';
 6 }
 7 function OutputContent(){
 8     echo 'Hello!';
 9 }
10 
11 //그다음에 이제 관련 함수를 불러주시면 됩니다
12 ?>
13 
14 <!DOCTYPE html>
15 <html>
16     <head>
17         <title><?php OutputTitle(); ?></title>
18     </head>
19     <body>
20         <span><?php OutputContent(); ?></span>
21     </body>
22 </html>

코드 복사
나는 이 세 가지 방법 중 가장 좋다고 생각하지만, 이렇게 하는 단점은 이런 코드 블록이 많아지면 프로그램 읽기에 심각한 지장을 줄 수 있다는 것이다.

4.프론트 템플릿 엔진 사용
전/후면 엔지니어는 웹 개발 전반에 걸쳐 프론트 엔드의 중요성이 증대됨에 따라 점차 두 직종으로 분리되고 있으므로 전/후면 엔지니어를 확보하기 위해서라고 할 수 있습니다.서로 협력할 수 있어, 전단이 개발될 수 있다.백엔드에서 개발된 것과 도킹이 더욱 완벽하여 점차적으로 일련의 프론트엔드 템플릿 엔진, 예를 들어 Smarty가 탄생하게 되었습니다.Smarty로 작성된 구현코드는 가독성이 매우 높아 전/후단 분리가 더욱 효율적이고 편리합니다.관심 있는 학생은 검색하여 알아두면 된다

반응형