을 보여주는 결과 PHP 수출 MySQL을 CSV에 - HTML
가 나는 PHP 페이지가 ... (그 날을 위해 적어도 일했다) 나는 이미이에 게시물을보고,하지만 정말 솔루션을 제공하지 않았다 그것은 몇 가지 기본 MySQL 쿼리를 수행하며 그 결과는 페이지에 표시됩니다. 나는이 과정에서 몇 가지 $ _GET 및 $ _SESSION 변수를 사용하고있다.동일한 페이지에서 사용자가 "함수를 호출하여 CSV로 내보내기"할 수도 있습니다. 내보내기에서 반환 된 파일의 하단에는 CSV 결과가 있지만 내 페이지의 HTML (함수를 호출 함)이 포함되어 있습니다.
이제 페이지 상단에는 ob_start()가 있고 하단에는 ob_flush()가 있습니다. 그렇지 않으면 페이지로드시 "헤더를 수정할 수 없습니다 ..."오류가 발생합니다. 그래서, 내가 읽은 게시물에 제안 된대로 :
My guess is that you've got some sort of template that generates the same HTML header and footer regardless of the page that is requested. Sometime before the exportCSV function is called, the header is generated.
You don't show the bottom of the output, but I'll bet the footer is there too, since I suspect the flow control will continue on to that code after the function exits."
(http://stackoverflow.com/questions/207019/why-am-i-getting-html-in-my-mysql-export-to-csv/207046)
아무도 내가 어떻게 이런 일이 일어나지 않도록 할 수있는 아이디어가 있습니까? 내 코드를 게시해야한다면 알려주세요.
고마워요!
편집 :
때 내 수출 함수를 호출하기 전에, 그것이 CSV 전에 모든 HTML를 제거한다() 위해서는 ob_end_clean 호출. csv로 결과 후에 그러나, 나는 여전히 ... 일부 HTML 닫는 태그를 얻고있다
fname lname MONTH WeekdayCount WeekendCount
John Doe 8 1 0
John Doe 7 3 2
Jane Smith 7 3 2
</div>
</div>
</div>
</body>
</html>
편집 :
이 문제는 CSV 내보내기 스크립트를 호출 한 후 exit()를 호출하여 해결되었습니다.
제안을 주셔서 감사합니다 내 편집을 참조하십시오. – littleK
아, 나는 csv를 출력 한 후에 exit()를 호출하는 것을 잊어 버렸습니다. 그게 효과가 있었어! 고마워. ob_flush 및 ob_end_clean() 등을 사용해야한다는 것이 좋지 않습니까? – littleK
CSV를 내보내는 실제 스크립트는 별도입니다. 하지만 기존 PHP 페이지에서 스크립트를 호출해야합니다. (HTML이 혼합 된 상태로) ... – littleK