我正在使用 codeigniter 框架和 dompdf 生成 pdf 。它在本地主机上工作得很好,但在实时服务器上显示 500 错误。我尝试过调试,但 error_log 文件中没有显示任何错误。这是函数generate_pdf的代码。 public function generate_pdf($content, $name = 'download.pdf', $output_type = null, $footer = null, $margin_bottom = null, $header = null, $margin_top = null, $orientation = 'P'){ $this->load->library('pdf'); $html = ''; if (is_array($content)) { foreach ($content as $page) { $html .= $header?'<header>'.$header.'</header>':''; $html .= '<footer>'.($footer?$footer.'<br><span class="pagenum"></span>' : '<span class="pagenum"></span>').'</footer>'; $html .= '<body><div class="page">'.$page['content'].'</div></body>'; } } else { $html .= $header?'<header>'.$header.'</header>' : ''; $html .= $footer?'<footer>'.$footer.'</footer>' : ''; $html .= $content; } $this->pdf->set_option('isPhpEnabled', true); $this->pdf->set_option('isHtml5ParserEnabled', true); $this->pdf->set_option('isRemoteEnabled', true); $this->pdf->set_option('enable_html5_parser', TRUE); // $this->pdf->set_option("DOMPDF_ENABLE_HTML5PARSER", true); // $this->pdf->loadHtml($html); $html = preg_replace('/>\s+</', '><', $html); // $this->pdf->loadHtml($contents); $this->pdf->loadHtml($html); // $dompdf->load_html($html); $this->pdf->setPaper('A4', ($orientation == 'P' ? 'portrait' : 'landscape')); // $dompdf->set_option('enable_html5_parser', TRUE); $this->pdf->render(); // $this->pdf->stream("dompdf_out.pdf", array("Attachment" => true)); // exit(0); if ($output_type == 'S') { // $output = $dompdf->output(); $output = $this->pdf->output(); write_file('assets/uploads/' . $name, $output); return 'assets/uploads/' . $name; } else { $this->pdf->stream($name); return true; }}
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
如果您使用的是 Dompdf 0.8.5,这是您的异常行
[$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($file);
如果这适用于本地主机但不适用于实时服务器,这可能是 PHP 版本的问题,因为此行使用 PHP 7.1 中引入的新语法
- 1 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消