일부 스크립트에서 닫는 PHP 태그 '?>'를 생략하는 이유는 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
- 닫기 태그를 생략하는 이유는 무엇입니까? 답변 14 개
일부 스크립트에서는 스크립트에 대한 닫기 태그 작성을 생략 ?>
합니다. 왜 그렇습니까?
(그들이 그것을 잊어 버리지 않았다고 확신합니다.)
닫기 태그를 생략하는 것은 파일 끝에서 공백과 다른 문자를 피하기위한 하나의 솔루션 일뿐입니다. 예를 들어, 닫는 태그 뒤에 실수로 추가 된 문자는 나중에 헤더 정보를 수정하려고 할 때 오류가 발생합니다.
닫는 태그를 제거하는 것은 많은 코딩 지침을 참조하는 일종의 "좋은 방법"입니다.
에서 PHP : 명령 분리
파일의 끝에서 PHP 블록의 닫기 태그는 선택 사항이며, 어떤 경우에 사용할 때 도움이됩니다 생략
include()
또는require()
원치 않는 공백이 파일의 끝에서 발생하지 않도록, 당신은 여전히에 헤더를 추가 할 수 있습니다 나중에 응답. 출력 버퍼링을 사용하는 경우에도 편리하며 포함 된 파일에 의해 생성 된 부분 끝에 불필요한 공백이 추가되는 것을 원하지 않습니다.
파일이 순수 PHP 코드 인 경우 파일 끝에 PHP 닫기 태그를 생략하는 것이 좋습니다. 이렇게하면 PHP 닫는 태그 뒤에 실수로 공백이나 줄 바꿈이 추가되는 것을 방지 할 수 있습니다. 이는 프로그래머가 스크립트의 해당 지점에서 출력을 보내려는 의도가 없으면 PHP가 출력 버퍼링을 시작하기 때문에 원하지 않는 결과를 초래할 수 있습니다.
닫는 태그 다음에 공백이 없어서 헤더가 작동하지 않을 수 있습니다.
물론 이것은 PHP 전용 파일의 경우에도 마찬가지입니다.
CodeIgniter Framework 는에 대한 닫기 태그를 생략 할 것을 제안합니다.
"... 원치 않는 출력, PHP 오류 또는 빈 페이지가 발생할 수 있습니다."
최신 버전의 PHP는에 output_buffering
플래그를 설정합니다 php.ini
. 출력 버퍼링이 활성화 된 경우 반환 된 코드가 브라우저로 즉시 전송되지 않으므로 HTML 출력 후 HTTP 헤더 및 쿠키를 설정할 수 있습니다.
이 상황에서 예제가 여전히 유효합니까?
- 불필요한 공백 / 빈 페이지가 표시됩니다. 원하지 않는 공백에는 HTTP 헤더가 작동하지 않습니다.
- 대부분의 JavaScript 주입은 파일 끝에서 이루어집니다. 오류 메시지를 표시하고 코드를 중단합니다. 삽입 된 JavaScript 코드는 실행되지 않습니다.
참고 URL : https://stackoverflow.com/questions/3219383/why-do-some-scripts-omit-the-closing-php-tag
'Programming' 카테고리의 다른 글
JavaScript에 Sleep / Pause / Wait 기능이 있습니까? (0) | 2020.05.13 |
---|---|
쿼리에서 반환 된 각 행에 대해 저장 프로 시저를 어떻게 한 번 실행합니까? (0) | 2020.05.13 |
AngularJS가 처음에는 부분적으로로드 할 수있는 방법이 있습니까? (0) | 2020.05.13 |
빈 배열은 동시에 참과 거짓으로 보입니다. (0) | 2020.05.13 |
PHP에서 PDF 문서를 미리보기 이미지로 어떻게 변환합니까? (0) | 2020.05.13 |