본문 바로가기

프로그래밍/PHP

php에서 xml 출력시 주의할 점!!!

오늘 php에서 xml 형식을 출력하는데, 거의 2~3시간 고생했군요-_-;;
평소에는 잘 되던 거였는데,, 왜 안되는가 이유를 모르겠더군요..

2시간쯤 뻘짓해보고나서야 
<?xml version="1.0" encoding="UTF-8"?> 선언하기 전에 위쪽에 공백이 있으면 안된다는걸 알았고,

그래서 그 공백이 왜 생기나 의아해했습니다.

처음에는 네이버 블로그 api를 쓰는 작업이었는데,, api 자체에서 값을 넘겨줄 때 잘 못 넘겨주나 싶었는데,,
아무리 검색을 해봐도 그런 글은 찾아볼 수가 없더군요-_-;;

그래서 혹시 echo함수의 문제인가,,해서 또 찾아봤더니,, echo함수에도 그런 문제는 없더군요..

결국 원점으로 돌아가서 그냥 아무 글이나 echo로 출력해봤습니다.
그랬는데,, 이상하게 위에 두줄이 띄워지더군요;;;
그래서 php문서를 잘 살펴보니,,, 최초 <?php를 시작하기 전에 제가 엔터를 두번쳤더군요-_-;;
그래서 안되는 거였음..;;;

xml... 생각보다 까다롭군요.


한가지 참고할 것!
php에서 xml형식으로 만들어서 echo로 출력하면 보이기에는 xml 형식인 것 같지만, 뭔가 하나 빠진 것 같습니다.
아직 정확히는 모르겠는데, 자바스크립트에서 해당 페이지를 읽어서 바로 dom객체로 인식이 안되더군요-_-
그런데, php 문서에서 xml을 출력하기 전에 
header("Content-type: text/xml");
를 호출해주면 자바스크립트에서 이 문서를 dom객체로 바로 인식하네요.

뭔가 확실하게는 모르겠지만, xml을 출력할 때에는 header()함수를 호출해주는 것이 좋을 듯 합니다.