mpdf错误 - preg_replace():不推荐使用/ e修饰符,而是使用preg_replace_callback

Suj*_*tha 5 codeigniter mpdf

我正在使用MPDF在codeigniter中生成pdf文件.

我的控制器功能看起来像

   function save_pdf($std_id)
   {
     $data['section1_report']= $this->common_model->get_details('tbl_section1',array('id'=>$std_id));
     $html = $this->load->view('reports/section1',$data,true);
      // print_r($html);exit; 
     $this->load->library('pdf');
     $pdf = $this->pdf->load();
     $pdf->WriteHTML($html);
     $pdf->Output();
}
Run Code Online (Sandbox Code Playgroud)

我的pdf图书馆是

 <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
   class pdf {    
      function pdf()
      {
         $CI = & get_instance();
         log_message('Debug', 'mPDF class is loaded.');
      }

     function load($param=NULL)
     {
         include_once APPPATH.'/mpdf/mpdf.php';         
         if ($params == NULL)
         {
             $param = '"en-GB-x","A4","","",10,10,10,10,6,3';         
         }         
       return new mPDF($param);
     }
  }
Run Code Online (Sandbox Code Playgroud)

我想从视图文件生成pdf文件section1.但是当我调用控制器功能时save_pdf,我得到的错误如下

在此输入图像描述

当我print_r($html);exit;,它显示视图file.i中的所有内容preg_replace_callback而不是preg_replacein,mpdf/includes/functions.php但它仍然显示这样的错误

在此输入图像描述

我研究了mpdf文档,它在普通的PHP中正常工作.但我想生成pdf文件Codeigniter.如何解决这样的错误mpdf?我会感激任何帮助,我可以pdf file使用mpdfin Codeigniter.谢谢.

Glu*_*ear 20

尝试用以下代码替换79行和80行functions.php:

$str = preg_replace_callback('/\&\#([0-9]+)\;/m', function($m) use ($lo){return code2utf($m[1],$lo); }, $str);
$str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', function($m) use ($lo){return codeHex2utf($m[1],$lo);}, $str);
Run Code Online (Sandbox Code Playgroud)

资料来源:https://github.com/carlholmberg/mpdf/issues/1