source

일부 스크립트에서 닫는 PHP 태그 '?>가 생략되는 이유는 무엇입니까?

factcode 2022. 10. 3. 17:26
반응형

일부 스크립트에서 닫는 PHP 태그 '?>가 생략되는 이유는 무엇입니까?

일부 스크립트에서는 닫힘 태그 기입을 생략하고 있는 것을 알 수 있습니다.?>스크립트용입니다.왜 이렇게 해야 하나요?

(잊지 않으셨겠죠?)

자, 클로징 태그를 생략하는 것은 파일 끝에 공백이나 다른 문자를 사용하지 않기 위한 해결책 중 하나일 뿐입니다.예를 들어, 닫힘 태그 뒤에 잘못 추가된 문자가 있으면 나중에 헤더 정보를 수정하려고 할 때 오류가 발생합니다.

닫힘 태그를 삭제하는 것은 많은 코딩 가이드라인을 참조하는 일종의 "좋은 관행"입니다.

PHP에서 명령 분리

파일 끝에 있는 PHP 블록의 닫힘 태그는 선택 사항이며, 경우에 따라서는 생략하는 것이 사용 시 도움이 됩니다.include()또는require()따라서 파일 끝에 불필요한 공백이 발생하지 않으며 나중에 응답에 헤더를 추가할 수 있습니다.또한 출력 버퍼링을 사용하여 포함된 파일에 의해 생성된 부분 끝에 불필요한 공백이 추가되는 것을 원하지 않는 경우에도 유용합니다.

PHP 태그의 php.net:

파일이 순수한 PHP 코드일 경우 파일 끝에 있는 PHP 닫힘 태그를 생략하는 것이 좋습니다.이로 인해 PHP 클로징 태그 뒤에 실수로 공백이 생기거나 새로운 행이 추가되는 것을 방지할 수 있습니다.이는 스크립트에서 프로그래머가 출력을 보낼 의도가 없을 때 PHP가 출력 버퍼링을 시작하기 때문입니다.

이는 헤더가 작동하지 않을 수 있는 닫힘 태그 뒤에 공백이 생기는 위험을 피하기 위해 수행됩니다.

물론 이는 PHP 전용 파일에 해당됩니다.

CodeIgniter Framework에서는 다음 태그의 닫힘을 생략할 것을 권장합니다.

"... 원치 않는 출력, PHP 오류 또는 공백 페이지가 발생할 수 있습니다."

여기서 읽을 수 있어요.

최신 버전의 PHP는output_buffering깃발을 올리다php.ini출력 버퍼링이 활성화 되어 있는 경우 반환된 코드가 브라우저로 바로 전송되지 않으므로 HTML 출력 후 HTTP 헤더 및 쿠키를 설정할 수 있습니다.

이 예들은 이 맥락에서 여전히 유효합니까?

  1. 불필요한 공백/공백 페이지가 표시됩니다.이러한 불필요한 공백에는 HTTP 헤더가 기능하지 않습니다.
  2. 대부분의 JavaScript 주입은 파일 끝에 이루어집니다.에러 메세지가 표시되고 코드가 끊어집니다.인젝트된 JavaScript 코드는 실행되지 않습니다.

언급URL : https://stackoverflow.com/questions/3219383/why-do-some-scripts-omit-the-closing-php-tag

반응형