PHP에서는 대부분 페이지를 실행해야하지만 해당 페이지의 출력에 항목을 삽입해야하는 경우가 있습니다.문서가 실행 된 후 페이지로 출력 삽입
출력 버퍼링이 도움이 될 수 있다고 생각하지만 상황에 맞게 구현하는 방법을 찾지 못했습니다.
내 코드는 다음과 같습니다 : 사이트에
//this document is part of a global functions file
function pageHeader(){
//I'm using $GLOBALS here because it works, however I would really rather a better method if possible
$GLOBALS['error_handler'] = new ErrorHandler(); //ErrorHandler class sets a function for set_error_handler, which gets an array of errors from the executed page
require_once($_SERVER['DOCUMENT_ROOT'].'/sales/global/_header.php');
//I would like the unordered list from ->displayErrorNotice() to be displayed here, but if I do that the list is empty because the list was output before the rest of the document was executed
}
function pageFooter(){
$GLOBALS['error_handler'] ->displayErrorNotice(); //this function displays the errors as an html unordered list
include($_SERVER['DOCUMENT_ROOT']."/sales/global/_footer.php");
}
대부분의 문서가이 문서를 포함하고 pageHeader()
및 pageFooter()
기능을 사용합니다. 내가 성취하려고 노력하는 것은 _header.php가 포함 된 시점에 HTML리스트에 PHP 생성되지 않은 에러리스트를 넣는 것이다. 문서를 실행 한 후 바닥 글에 넣으면 의도 한대로 작동하도록 목록을 가져올 수 있지만 그 위치는 원하지 않습니다. JS로 옮길 수는 있지만 PHP 솔루션이 있어야한다고 생각합니다.
그때 에러 목록을 넣어 정규식에 의해 버퍼를 검색하고 ob_start()
위한 콜백 함수가 용액 것이다 삽입 여부 궁금
UPDATE.
업데이트 2 나는이 문제를 해결했으며 내 대답은 아래에 있습니다. 내가 허용 될 때 2 일 안에 받아 들일 것입니다.
네, 당신은 제대로 이해된다. 사실, jQuery를 사용하면 목록을 원하는 위치로 이동하는 것이 쉽지만 가능한 경우 순수한 PHP 솔루션을 선호합니다. –
이것은 PHP 이해 범위를 약간 넘어서는 것입니다. 그러나 계산 된 시점보다 먼저 문서에서 요소를 구현할 수 없다고 확신합니다. 어떤 종류의 오류를 캡처하고 있습니까? DOM에 커밋하기 전에 이러한 오류를 캡처 할 수 있습니까? – VictorKilo
내가 캡처하고있는 오류는 무엇인가 잘못되었을 때 PHP가 트리거하는 E_NOTICE 및 E_WARNING 오류입니다. 이 모든 목적은 모든 클라이언트가 마주보고있는 페이지에 버그 리포트 양식을 가지고 있으며 가능한 한 버그를 일으킬 수있는 페이지의 상황에 대해 많은 정보를 제공하고자합니다. 네, 출력 버퍼링은 당신이 제안하는 것을합니다. –