我在这里可能没有使用正确的方法,但我有一个 ErrorHandler 类,它会在出现错误时输出错误页面,如下所示:private function loadErrorPage() { if( file_exists( $this->errorPagePath ) ) { // load the error page: since it's an include, it'll have access all of this classe's properties! // i.e. $this->errstr, $this->errid, etc. include ( $this->errorPagePath ); } // no error page! print generic message! else { echo 'Got a problem! Contact the admin!'; } exit(); }我遇到的问题是有时我的页面是通过 AJAX 调用来调用的!如果我的 POST 中有错误被错误处理程序捕获,我需要能够 exit(),在 JSON 响应中返回完整生成的页面,或者只是指向它的链接,在 JS 中,重定向到实际的$this->errorPagePath页面回复中给出。但是,后面的解决方案不太有效,因为它需要所有必需的错误处理程序属性,例如 errid、错误字符串等。不知道如何继续这里。有没有办法可以将 include() 的结果输出到变量中并执行以下操作:$generatedErrorPage = include ( $this->errorPagePath );if ( $this->sendErrorPageInJSON ) { exit(json_encode([ 'errorHtml' => $generatedErrorPage ]));}else{ echo $generatedErrorPage; exit();}
1 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
您必须启动输出缓冲,包括文件并结束缓冲以使用其内容初始化变量
// Start output buffering
ob_start();
// Include the file
include ( $this->errorPagePath );
// End buffering and return its contents
$generatedErrorPage = ob_get_clean();
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消