首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mpdf error - preg_replace():不推荐使用/e修饰符,而是使用preg_replace_callback

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

Stack Overflow用户
提问于 2015-04-03 12:46:16
回答 4查看 12.5K关注 0票数 5

我使用MPDF在代码点火器中生成pdf文件。

我的控制器功能看起来就像

代码语言:javascript
复制
   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();
}

我的pdf库是

代码语言:javascript
复制
 <?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);
     }
  }

我想从视图文件section1生成pdf文件。但是,当我调用控制器函数save_pdf时,我得到了以下错误

当我print_r($html);exit;时,它会显示视图文件中的所有内容。我在mpdf/includes/functions.php中使用了preg_replace_callback而不是preg_replace,但仍然显示了如下错误

我研究了mpdf文档,它在平原php中正常工作。但是我想在Codeigniter中生成pdf文件。如何解决mpdf中的此类错误?如果能在pdf file中使用mpdf生成Codeigniter,我将不胜感激。谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-03 21:21:59

尝试用以下内容替换functions.php的第79和80行:

代码语言:javascript
复制
$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);

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

票数 22
EN

Stack Overflow用户

发布于 2017-09-13 12:18:24

代码语言:javascript
复制
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str);
$str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str);
// Remove above and add below code in includes/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);

// Also comment below line in mpdf.php
$html = preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$html );
票数 3
EN

Stack Overflow用户

发布于 2018-10-20 11:22:50

代码语言:javascript
复制
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str);
$str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str);
// Remove above and add below code in includes/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);

// Also comment below line in mpdf.php
$html = preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$html );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29432453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档