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()
andpageFooter()
関数を使用しています。私が達成しようとしているのは、_header.phpがインクルードされた直後の時点で、PHPで生成されたエラーの順序付けられていないリストをHTMLリストに入れることです。(ドキュメントが実行された後)フッターにリストを配置すれば、リストを意図したとおりに機能させることができますが、リストをそこに配置したくありません。JSで動かせると思いますが、PHPソリューションが必要だと思います。
アップデート
ob_start()
エラーリストをどこに置くかを正規表現でバッファを検索し、それを挿入するコールバック関数が解決策になるかどうか疑問に思っています。
UPDATE 2私は問題を解決しました、私の答えは以下の通りです。許可されたら2日以内に受け付けます。