2015-04-03 2 views
5

ich benutze MPDF um PDF Dateien im Codeigniter zu erzeugen.mpdf error - preg_replace(): Der/e Modifier ist veraltet, benutze preg_replace_callback statt

meine Controller-Funktion aussehen wie

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(); 
} 

meine pdf Bibliothek ist

<?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); 
    } 
    } 

ich will section1 pdf-Datei von der View-Datei erzeugen. aber wenn ich die Controller-Funktion save_pdf nennen, habe ich die Fehler wie unten

enter image description here

wenn ich print_r($html);exit;, zeigt es alle Inhalte aus der Sicht file.i verwendet preg_replace_callback statt preg_replace in mpdf/includes/functions.php aber es ist immer noch zeigt Fehler wie diese

enter image description here

i studierte die mpdf Dokumentation und es funktioniert richtig im Klar pHP. aber ich möchte pdf-Datei in Codeigniter erzeugen. Wie löst man solche Fehler in mpdf? Ich würde jede mögliche Hilfe schätzen, wo ich pdf file unter Verwendung mpdf in Codeigniter erzeugen kann. Danke.

+1

Ich googelte einfach "MPDF mit Codeigniter", versuchen Sie z.B. https://davidsimpson.me/2013/05/19/using-mpdf-with-codeigniter/ – Vickel

Antwort

16

Versuchen ersetzen Linien 79 und 80 von functions.php mit diesem:

$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); 

Quelle: https://github.com/carlholmberg/mpdf/issues/1

0

I ersetzt diesen Zeilen:

$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str); 
    $str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str); 

mit dieser Linie:

$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); 

und es hat richtig funktioniert.

0
$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); 
Verwandte Themen