일부 스크립트에서 닫는 PHP 태그 '?>가 생략되는 이유는 무엇입니까?
일부 스크립트에서는 닫힘 태그 기입을 생략하고 있는 것을 알 수 있습니다.?>
스크립트용입니다.왜 이렇게 해야 하나요?
(잊지 않으셨겠죠?)
자, 클로징 태그를 생략하는 것은 파일 끝에 공백이나 다른 문자를 사용하지 않기 위한 해결책 중 하나일 뿐입니다.예를 들어, 닫힘 태그 뒤에 잘못 추가된 문자가 있으면 나중에 헤더 정보를 수정하려고 할 때 오류가 발생합니다.
닫힘 태그를 삭제하는 것은 많은 코딩 가이드라인을 참조하는 일종의 "좋은 관행"입니다.
파일 끝에 있는 PHP 블록의 닫힘 태그는 선택 사항이며, 경우에 따라서는 생략하는 것이 사용 시 도움이 됩니다.
include()
또는require()
따라서 파일 끝에 불필요한 공백이 발생하지 않으며 나중에 응답에 헤더를 추가할 수 있습니다.또한 출력 버퍼링을 사용하여 포함된 파일에 의해 생성된 부분 끝에 불필요한 공백이 추가되는 것을 원하지 않는 경우에도 유용합니다.
PHP 태그의 php.net:
파일이 순수한 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
'source' 카테고리의 다른 글
PHP의 cURL을 사용하여 Tor 숨김 서비스에 연결하려면 어떻게 해야 합니까? (0) | 2022.10.03 |
---|---|
getter를 사용하는 경우 (0) | 2022.10.03 |
Java에서는 @Override와 같은 주석이 내부적으로 어떻게 작동합니까? (0) | 2022.10.03 |
JavaScript에서 문자열을 비교하는 최적의 방법? (0) | 2022.10.03 |
osx 마리아DB max_allowed_packet 설정 방법 (0) | 2022.10.03 |