php 종료 코드를 쓰지 말자!! 정보
php 종료 코드를 쓰지 말자!!
본문
php 코딩시 그누보드는 여러 파일을 include 합니다.
수정하다 보면 나도 모르게
<?php 앞부분 또는
?> 뒷부분에 공백이나 엔터키가 들어가는 경우가 있습니다.
각종 라이브러리 파일이나 환경설정파일등 HTML이 없이 순수 PHP 코드로만 작성된 페이지 등이 해당됩니다.
해더를 이용해 파일을 출력, 다운로드 하는건 이부분 때문에 안될 경우가 많습니다.
엑셀로 저장하기가 왜 안되는지 include 파일들 살펴보니
config.php
_common.php
common.lib.php
extend/*,php
등등 보니 한두군데
?> 뒤에 엔터 또는 공백이 있더군요 -_-;
해결법은 ?> 를 쓰지 않으면 됩니다.
그냥 그렇다구요..;
ps) 지수목적이 아님!
수정하다 보면 나도 모르게
<?php 앞부분 또는
?> 뒷부분에 공백이나 엔터키가 들어가는 경우가 있습니다.
각종 라이브러리 파일이나 환경설정파일등 HTML이 없이 순수 PHP 코드로만 작성된 페이지 등이 해당됩니다.
해더를 이용해 파일을 출력, 다운로드 하는건 이부분 때문에 안될 경우가 많습니다.
엑셀로 저장하기가 왜 안되는지 include 파일들 살펴보니
config.php
_common.php
common.lib.php
extend/*,php
등등 보니 한두군데
?> 뒤에 엔터 또는 공백이 있더군요 -_-;
해결법은 ?> 를 쓰지 않으면 됩니다.
그냥 그렇다구요..;
ps) 지수목적이 아님!
추천
0
0
댓글 30개
공백 들어가는것보다, 종료(동작)이 제대로 안되서, 오류 발생하는게 더 무서운데요? --;;
도..동감입니다..^^;

PHP 만 있는페이지는 오류 안납니다. 해보세요.
순수한 PHP 프로그램이라고 해도, 서로 include와 class 되는데...
왠만하면 규칙을 지켜주는게 좋은거죠.
보통 파일이 1~2개가 아니라... 수십개 수백개씩 물려서 돌아가면
어떤 오류가 발생될지는 아무도 모르는 일입니다 ^^
왠만하면 규칙을 지켜주는게 좋은거죠.
보통 파일이 1~2개가 아니라... 수십개 수백개씩 물려서 돌아가면
어떤 오류가 발생될지는 아무도 모르는 일입니다 ^^

오류 안납니다.
외국 소스들 찾아보시면 클래스 파일 마지막에 ?> 없는게 많습니다.
http://www.codeigniter-kr.org/user_guide/general/styleguide.html#php_closing_tag
참고하시면 위처럼 함수 클래스파일등 닫는테그 사용 하지 않는걸 추천 합니다.
외국 소스들 찾아보시면 클래스 파일 마지막에 ?> 없는게 많습니다.
http://www.codeigniter-kr.org/user_guide/general/styleguide.html#php_closing_tag
참고하시면 위처럼 함수 클래스파일등 닫는테그 사용 하지 않는걸 추천 합니다.
주신 자료는, 프레임워크(사용자가 만든 솔루션 틀)을 기반으로 설명합니다.
물론 그 틀에서 오류가 나지 않을 수는 있으나, php 언어 모두에 해당되는건 조금 아닌듯 한데요...
물론 그 틀에서 오류가 나지 않을 수는 있으나, php 언어 모두에 해당되는건 조금 아닌듯 한데요...

이걸보니 제가 그동안 잘 못 된 습관을 많이 갖고 있네요.
저는 이미 옛날(?) 사람이라...
이거 프린트 해서 찬찬히 읽어 봐야겠습니다.
저는 이미 옛날(?) 사람이라...
이거 프린트 해서 찬찬히 읽어 봐야겠습니다.
아.. 그리고 PHP 언어 자체가, 간헐적으로 html 기반으로 돌아가는 프로그램이라서, html이 아예 없는 프로그램은 사실상 거의 없다고 보는게 좋겠는데요?
템플릿이라고 해도, 몇가지 html 태그가 1:1 대치 되거나, 파싱되는 형태라서,
100%로 html 제거 php는 없다고 봐야겠죠.
템플릿이라고 해도, 몇가지 html 태그가 1:1 대치 되거나, 파싱되는 형태라서,
100%로 html 제거 php는 없다고 봐야겠죠.

제가 말한걸 이해 못하시는데
<?
php code
?>
html
<?
php code
?>
이런 페이지를는 해당사항 없습니다.
그누보드를 보면 config.php , lib/* 파일들에 PHP 를 거치지 않는 html이 있습니까?
"순수 PHP 코드로만 작성된 페이지" 라고 괜히 강조한게 아닙니다.
<?
php code
?>
html
<?
php code
?>
이런 페이지를는 해당사항 없습니다.
그누보드를 보면 config.php , lib/* 파일들에 PHP 를 거치지 않는 html이 있습니까?
"순수 PHP 코드로만 작성된 페이지" 라고 괜히 강조한게 아닙니다.
이해 했습니다만...
lib 파일이라고 해도, 중간중간에 html이 아예 없는 순수한 php 비율이
얼마나 있을까요? (물론 있을수도 있습니다만 확률상...)
물론 있으면, 쓰는건 자유일수도 있습니다.만, 그 공백 하나 때문에(저장시 신경써서 삭제하면 되는.. 귀찮지만..) 프로그램솔루션 자체를 "조그마한 확률이라도" 불안하게 만드는건... 조금 아니라고 보는 겁니다.
뭐.. 나는 그래도 괜찮다.. 이러면, 써야죠...
그렇지만, 비싼 솔루션에서 그렇게 쓰면, 신경안쓴 프로그램만 된다는 거죠.. (다른사람이 열어봣는데, 마무리가 덜 되어 있다, 이런느낌이 올테니까 말이죠)
lib 파일이라고 해도, 중간중간에 html이 아예 없는 순수한 php 비율이
얼마나 있을까요? (물론 있을수도 있습니다만 확률상...)
물론 있으면, 쓰는건 자유일수도 있습니다.만, 그 공백 하나 때문에(저장시 신경써서 삭제하면 되는.. 귀찮지만..) 프로그램솔루션 자체를 "조그마한 확률이라도" 불안하게 만드는건... 조금 아니라고 보는 겁니다.
뭐.. 나는 그래도 괜찮다.. 이러면, 써야죠...
그렇지만, 비싼 솔루션에서 그렇게 쓰면, 신경안쓴 프로그램만 된다는 거죠.. (다른사람이 열어봣는데, 마무리가 덜 되어 있다, 이런느낌이 올테니까 말이죠)

참 할말이 없네요.
제가 php 잘하지는 못하지면 검색이라도 열심히 해서 보고, 실제 적용해보고 올린겁니다.
오류 안납니다. 비싼 솔류션도 비싼 솔루션 할아버지가 와도 오류 안납니다.
신경 안쓰는게 아니라 ?> 이걸 안쓰는게 신경 더 쓴겁니다.
귀찮아서 안넣겠습니까? 혹여 실수로 엔터 들어가고 하면
그거 찾기도 쉽지 않습니다.
공백,엔터 때문에 질답란에 해더 오류나는거 질문 보십시오.
수도 없이 올라옵니다.
위처럼 하면 그럴 걱정 없습니다.
어느게 신경 쓴건가요?
제가 php 잘하지는 못하지면 검색이라도 열심히 해서 보고, 실제 적용해보고 올린겁니다.
오류 안납니다. 비싼 솔류션도 비싼 솔루션 할아버지가 와도 오류 안납니다.
신경 안쓰는게 아니라 ?> 이걸 안쓰는게 신경 더 쓴겁니다.
귀찮아서 안넣겠습니까? 혹여 실수로 엔터 들어가고 하면
그거 찾기도 쉽지 않습니다.
공백,엔터 때문에 질답란에 해더 오류나는거 질문 보십시오.
수도 없이 올라옵니다.
위처럼 하면 그럴 걱정 없습니다.
어느게 신경 쓴건가요?
엥? 쓰시려면 ... 쓰시라고 말씀은 드렸는데요? (쓰지 말라고는 안했음)
아.. 그런데, 비싼 솔루션 할아버지가 와도 오류 안난다는건, 상당히 위험하신 발언 같군요.
제가 PHP 언어개발자라고 해도 그런 말은 피할듯 싶습니다.
공백은 찾기 쉬운데요. 툴 잘 쓰면, 엔터 띄어쓰기, 다 위지윅(그래픽)으로 표현해 줍니다.
그리고 오류나는건, 배포하신분이 잘못하셨거나, 수정하실때 적절치 못하게 하셨거나, 에디터 오류일 뿐, 언어 자체를 꼭 그렇게 쓰는데 이유는 되지 못한다고 봅니다.
위의 오류를 발생되었다고 해서, (배포할때 빼곤) 닫는 태그를 없앤다는건... 조금 그렇네요 (다시한번 강조하지만, 빼실려면 빼셔도 됩니다만, 빼는건 프로그래머 선택 입니다. 오해 마시길...)
아.. 그런데, 비싼 솔루션 할아버지가 와도 오류 안난다는건, 상당히 위험하신 발언 같군요.
제가 PHP 언어개발자라고 해도 그런 말은 피할듯 싶습니다.
공백은 찾기 쉬운데요. 툴 잘 쓰면, 엔터 띄어쓰기, 다 위지윅(그래픽)으로 표현해 줍니다.
그리고 오류나는건, 배포하신분이 잘못하셨거나, 수정하실때 적절치 못하게 하셨거나, 에디터 오류일 뿐, 언어 자체를 꼭 그렇게 쓰는데 이유는 되지 못한다고 봅니다.
위의 오류를 발생되었다고 해서, (배포할때 빼곤) 닫는 태그를 없앤다는건... 조금 그렇네요 (다시한번 강조하지만, 빼실려면 빼셔도 됩니다만, 빼는건 프로그래머 선택 입니다. 오해 마시길...)
무섭네요

이클립스 쓰시면 공백있다고 머라 합니다.^^

실제로 저는 ?>뒤에 엔터나 공백 문자가 있으면 순전히 감각적으로 그것이 오류가 있을거라 예상되서 공백제거를 했었는데 진짜 이런 문제가 있다는 걸 알고 보니 신기하네요. ㅋㅋ

클로징 태그를 쓰지 않으면,, 음...화장실 갔다가 뒤를 안닦고 나온 기분일거 같습니다.

비데를 쓴다고 생각해 주세요 ㅡ0ㅡ;

php 전용 페이지는 php closing tag 가 필수가 아니다라는게 글의 요지이고 이렇게 하면 장점이 있다는걸 알려주는글입니다.
새로운나라님 허락 받고 쓸 일도 아니고요.
codeigniter , zend framework 등을 개발한 개발자들이 추천하는 코딩 가이드 인데 이걸 오류 날지도 모른다는 말씀 하시는게 참 이해 하기 어렵네요.
그렇지만
솔루션 할아버지의 할아버지가 와도 오류 안납니다.
끝!
퇴근할 시간에 이 무슨 열폭인지;;;;;
새로운나라님 허락 받고 쓸 일도 아니고요.
codeigniter , zend framework 등을 개발한 개발자들이 추천하는 코딩 가이드 인데 이걸 오류 날지도 모른다는 말씀 하시는게 참 이해 하기 어렵네요.
그렇지만
솔루션 할아버지의 할아버지가 와도 오류 안납니다.
끝!
퇴근할 시간에 이 무슨 열폭인지;;;;;
허락 받고 쓰라고 한적 없습니다. 조금 과하게 해석하셧군요.
제가 고가의 솔루션을 개발한다면, 당연히 무조건 사용한다는 의견만 말씀 드렸습니다.
아무리 유명 개발자가 추천했다고 해서, 그게 진리는 아닙니다. 그 사람들도 .. 사람이기에, 100% 장담은 하지 못하죠.
다시한번 말씀드리지만, 여기는 자유로운 게시판이기에 제 생각에 대해서 의견을 피력했을 뿐, 이게 진리라고 말씀드리지 않았습니다.
오해 없으셨으면....
제가 고가의 솔루션을 개발한다면, 당연히 무조건 사용한다는 의견만 말씀 드렸습니다.
아무리 유명 개발자가 추천했다고 해서, 그게 진리는 아닙니다. 그 사람들도 .. 사람이기에, 100% 장담은 하지 못하죠.
다시한번 말씀드리지만, 여기는 자유로운 게시판이기에 제 생각에 대해서 의견을 피력했을 뿐, 이게 진리라고 말씀드리지 않았습니다.
오해 없으셨으면....

아 참고로 테스트해보니..
이클립스 <- 개발툴
에서도 종료태그 없는걸 오류로 잡지 않네요..^^
허나 종료태그뒤의 공백은 warnning으로 잡아줍니다.
전 제가 개발한 소스의 90%가 html소스없는 php파일입니다.
그래서 이 글이 더 와닿네요....
개인의 선택이겠지만....
안써도 된다면 안쓰는게 더 낳겠네요 ㅎㅎ
이클립스 <- 개발툴
에서도 종료태그 없는걸 오류로 잡지 않네요..^^
허나 종료태그뒤의 공백은 warnning으로 잡아줍니다.
전 제가 개발한 소스의 90%가 html소스없는 php파일입니다.
그래서 이 글이 더 와닿네요....
개인의 선택이겠지만....
안써도 된다면 안쓰는게 더 낳겠네요 ㅎㅎ

테스트까지 해주시고 감사합니다.
PDT 쓰시나요?
PDT 쓰시나요?

네 PDT씁니다.^^

허허 전 오늘 첨 알았네요..감사!~
대부분 공감합니다.
좀 강제할려는 느낌이 강하네요.
예를 들면 네이밍의 경우 회사별/개발자별로 틀릴 수 있고 이는 권고할 수 있지 강제할 수 있는 부분은 아닐텐데요.
또한 php 프레임웍 가이드보단 차라리 php.net의 가이드를 참고하는게 더 좋지 않을까 싶습니다.
예시로 들어준 페이지 (http://www.codeigniter-kr.org/user_guide/general/styleguide.html#php_closing_tag)
줄바꿈 처리 제대로 했으면 좋겠네요
ps. php.net 에서도 종료태그가 때로는 없는것이 유용하다고 적혀있네요.
http://kr.php.net/manual/kr/language.basic-syntax.instruction-separation.php
좀 강제할려는 느낌이 강하네요.
예를 들면 네이밍의 경우 회사별/개발자별로 틀릴 수 있고 이는 권고할 수 있지 강제할 수 있는 부분은 아닐텐데요.
또한 php 프레임웍 가이드보단 차라리 php.net의 가이드를 참고하는게 더 좋지 않을까 싶습니다.
예시로 들어준 페이지 (http://www.codeigniter-kr.org/user_guide/general/styleguide.html#php_closing_tag)
줄바꿈 처리 제대로 했으면 좋겠네요
ps. php.net 에서도 종료태그가 때로는 없는것이 유용하다고 적혀있네요.
http://kr.php.net/manual/kr/language.basic-syntax.instruction-separation.php

제가 찾던 페이지네요.
이걸 못찾아서 한참 헤멧네요.
감사합니다.
이걸 못찾아서 한참 헤멧네요.
감사합니다.

@미니어스 php.net 링크를 수정합니다 (kr.php.net 서비스 종료..)
https://www.php.net/manual/en/language.basic-syntax.instruction-separation.php
https://www.php-fig.org/psr/psr-2/ 읽으면 정리가 됩니다
https://www.php.net/manual/en/language.basic-syntax.instruction-separation.php
https://www.php-fig.org/psr/psr-2/ 읽으면 정리가 됩니다
그리고보니 외국개발 소스엔 그런걸 자주 본거 같습니다. 습관상 당장 적응이 되지는 얺을거 같긴한데 고쳐보도록 해야겠네요...ㅎㅎ
그런데 일부 예전버젼 드림위버등 에디터 툴에서는 ?> 안닫으면 좀 이상하게 보였던 기억이 있습니다. 요즘거에선 안그랬던거 같은데...예전버젼 일일이 깔아서 확인 할수도 없고...여튼 그렇다구요.(에디터 자체의 문제)
?>이후 내용이 따로 필요없는 설정파일, 함수(라이브러리)파일 등에 유용할거 같네요. 좋은 정보 감사합니다^^
그런데 일부 예전버젼 드림위버등 에디터 툴에서는 ?> 안닫으면 좀 이상하게 보였던 기억이 있습니다. 요즘거에선 안그랬던거 같은데...예전버젼 일일이 깔아서 확인 할수도 없고...여튼 그렇다구요.(에디터 자체의 문제)
?>이후 내용이 따로 필요없는 설정파일, 함수(라이브러리)파일 등에 유용할거 같네요. 좋은 정보 감사합니다^^

근데 막상 없으면 왠지 실수한것 같고 찝찝합니다.ㅎㅎ

진서기님 매번 좋은 정보 감사합니다~ ^^
글쓴이와 반대되는 의견을 가지시는 분은
"고정관념"이 있으시다고, 그러더군요...
다른생각 의견도 표현 못하는 커뮤니티.. 정말 숨 막히네요.
전쟁도 아니고, 뭐가 이기고 뭐가 진다는건지 --;
http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=606662#c_607048
"고정관념"이 있으시다고, 그러더군요...
다른생각 의견도 표현 못하는 커뮤니티.. 정말 숨 막히네요.
전쟁도 아니고, 뭐가 이기고 뭐가 진다는건지 --;
http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=606662#c_607048