为了账号安全,请及时绑定邮箱和手机立即绑定

将包含的输出发送到变量中?

将包含的输出发送到变量中?

PHP
ABOUTYOU 2023-08-11 17:27:17
我在这里可能没有使用正确的方法,但我有一个 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();


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信