2016-05-31 16 views
0

Ich habe einige Probleme beim Schreiben meiner Formulareingabe in PDF es kommt mit dem Fehler;FPDF Probleme beim Senden von Formular

Fatal error: Cannot redeclare hex2dec() (previously declared in /home/tomjk/public_html/release/WriteHTML.php:12) in /home/tomjk/public_html/release/WriteHTML.php on line 24

Ich habe einen Blick auf die PHP-Datei hatte und es sieht absolut in Ordnung .... Ich habe hat ein Tutorial folgenden über an PHP Bande und sonst niemand scheint über diese zu kommen.

http://www.phpgang.com/how-to-convert-html-to-pdf-in-php-with-fpdf_447.html

fpdf.php

<?php 
require('WriteHTML.php'); 
include('config.php'); 

$query = "SELECT * FROM `release` ORDER BY `id` "; 
$result = mysqli_query($con, $query); 
$row = mysqli_fetch_assoc($result); 

$pdf=new PDF_HTML(); 

$pdf->AliasNbPages(); 
$pdf->SetAutoPageBreak(true, 15); 

$pdf->AddPage(); 
$pdf->Image('RR_logo.png',18,13,33); 
$pdf->SetFont('Arial','B',14); 
$pdf->WriteHTML('<para><h1>PHPGang Programming Blog, Tutorials, jQuery, Ajax, PHP, MySQL and Demos</h1><br> 
Website: <u>www.phpgang.com</u></para><br><br>How to Convert HTML to PDF with fpdf example'); 

$pdf->SetFont('Arial','B',7); 
$htmlTable='Talent Details<hr /> 
Talent name '. $POST['name'] .' (hereafter referred to as “Talent”)<br /> 
Email '. $POST['email'] .' <br /> 
Phone no '. $POST['phone'] .' <br /> 

Producers Details<hr /> 
Producer’s name '. $row['producers'] .' (hereafter referred to as “Producer”)<br /> 
Production Company '. $row['release'] .'<br /> 
Title '. $row['company'] .'(all hereafter referred to as “Production”)<br /> 


'; 
$pdf->WriteHTML2("<br><br><br>$htmlTable"); 
$pdf->SetFont('Arial','B',6); 
$pdf->Output(); 
?> 

WriteHTML.php

<?php 
//HTML2PDF by Clément Lavoillotte 
//[email protected] 
//[email protected] 
//http://www.streetpc.tk 

require('fpdf.php'); 

//function hex2dec 
//returns an associative array (keys: R,G,B) from 
//a hex html code (e.g. #3FE5AA) 
function hex2dec($couleur = "#000000"){ 
    $R = substr($couleur, 1, 2); 
    $rouge = hexdec($R); 
    $V = substr($couleur, 3, 2); 
    $vert = hexdec($V); 
    $B = substr($couleur, 5, 2); 
    $bleu = hexdec($B); 
    $tbl_couleur = array(); 
    $tbl_couleur['R']=$rouge; 
    $tbl_couleur['V']=$vert; 
    $tbl_couleur['B']=$bleu; 
    return $tbl_couleur; 
} 

//conversion pixel -> millimeter at 72 dpi 
function px2mm($px){ 
    return $px*25.4/72; 
} 

function txtentities($html){ 
    $trans = get_html_translation_table(HTML_ENTITIES); 
    $trans = array_flip($trans); 
    return strtr($html, $trans); 
} 
//////////////////////////////////// 

class PDF_HTML extends FPDF 
{ 
//variables of html parser 
var $B; 
var $I; 
var $U; 
var $HREF; 
var $fontList; 
var $issetfont; 
var $issetcolor; 

function PDF_HTML($orientation='P', $unit='mm', $format='A4') 
{ 
    //Call parent constructor 
    $this->FPDF($orientation,$unit,$format); 
    //Initialization 
    $this->B=0; 
    $this->I=0; 
    $this->U=0; 
    $this->HREF=''; 
    $this->fontlist=array('arial', 'times', 'courier', 'helvetica', 'symbol'); 
    $this->issetfont=false; 
    $this->issetcolor=false; 
} 

function WriteHTML($html) 
{ 
    //HTML parser 
    $html=strip_tags($html,"<b><u><i><a><img><p><br><strong><em><font><tr><blockquote>"); //supprime tous les tags sauf ceux reconnus 
    $html=str_replace("\n",' ',$html); //remplace retour à la ligne par un espace 
    $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE); //éclate la chaîne avec les balises 
    foreach($a as $i=>$e) 
    { 
     if($i%2==0) 
     { 
      //Text 
      if($this->HREF) 
       $this->PutLink($this->HREF,$e); 
      else 
       $this->Write(5,stripslashes(txtentities($e))); 
     } 
     else 
     { 
      //Tag 
      if($e[0]=='/') 
       $this->CloseTag(strtoupper(substr($e,1))); 
      else 
      { 
       //Extract attributes 
       $a2=explode(' ',$e); 
       $tag=strtoupper(array_shift($a2)); 
       $attr=array(); 
       foreach($a2 as $v) 
       { 
        if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3)) 
         $attr[strtoupper($a3[1])]=$a3[2]; 
       } 
       $this->OpenTag($tag,$attr); 
      } 
     } 
    } 
} 

function OpenTag($tag, $attr) 
{ 
    //Opening tag 
    switch($tag){ 
     case 'STRONG': 
      $this->SetStyle('B',true); 
      break; 
     case 'EM': 
      $this->SetStyle('I',true); 
      break; 
     case 'B': 
     case 'I': 
     case 'U': 
      $this->SetStyle($tag,true); 
      break; 
     case 'A': 
      $this->HREF=$attr['HREF']; 
      break; 
     case 'IMG': 
      if(isset($attr['SRC']) && (isset($attr['WIDTH']) || isset($attr['HEIGHT']))) { 
       if(!isset($attr['WIDTH'])) 
        $attr['WIDTH'] = 0; 
       if(!isset($attr['HEIGHT'])) 
        $attr['HEIGHT'] = 0; 
       $this->Image($attr['SRC'], $this->GetX(), $this->GetY(), px2mm($attr['WIDTH']), px2mm($attr['HEIGHT'])); 
      } 
      break; 
     case 'TR': 
     case 'BLOCKQUOTE': 
     case 'BR': 
      $this->Ln(5); 
      break; 
     case 'P': 
      $this->Ln(10); 
      break; 
     case 'FONT': 
      if (isset($attr['COLOR']) && $attr['COLOR']!='') { 
       $coul=hex2dec($attr['COLOR']); 
       $this->SetTextColor($coul['R'],$coul['V'],$coul['B']); 
       $this->issetcolor=true; 
      } 
      if (isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist)) { 
       $this->SetFont(strtolower($attr['FACE'])); 
       $this->issetfont=true; 
      } 
      break; 
    } 
} 

function CloseTag($tag) 
{ 
    //Closing tag 
    if($tag=='STRONG') 
     $tag='B'; 
    if($tag=='EM') 
     $tag='I'; 
    if($tag=='B' || $tag=='I' || $tag=='U') 
     $this->SetStyle($tag,false); 
    if($tag=='A') 
     $this->HREF=''; 
    if($tag=='FONT'){ 
     if ($this->issetcolor==true) { 
      $this->SetTextColor(0); 
     } 
     if ($this->issetfont) { 
      $this->SetFont('arial'); 
      $this->issetfont=false; 
     } 
    } 
} 

function SetStyle($tag, $enable) 
{ 
    //Modify style and select corresponding font 
    $this->$tag+=($enable ? 1 : -1); 
    $style=''; 
    foreach(array('B','I','U') as $s) 
    { 
     if($this->$s>0) 
      $style.=$s; 
    } 
    $this->SetFont('',$style); 
} 

function PutLink($URL, $txt) 
{ 
    //Put a hyperlink 
    $this->SetTextColor(0,0,255); 
    $this->SetStyle('U',true); 
    $this->Write(5,$txt,$URL); 
    $this->SetStyle('U',false); 
    $this->SetTextColor(0); 
} 

}//end of class 
?> 
+0

Welche Zeile ist Zeile 24 in WriteHTML.php? – Jens

+0

Zeile 24 ist das "}" nach der Rückgabe $ tbl_couleur; – Jordan

+0

Wie ich weiß, die Zuweisung eines Wertes in der Methode segnature funktioniert nicht. Also versuchen Sie 'function hex2dec ($ couleur =" # 000000 ") {' zu 'Funktion hex2dec ($ couleur) {' – Jens

Antwort

0

Denken Sie das Problem haben, weil fpdf.php erfordern WriteHTML.php und WriteHTML.php fpdf.php erfordern . Sie haben also einen Zyklus in Abhängigkeiten.

Sie sollten versuchen, dies zu ändern.