2012-11-21 1 views
3

가지고있는 데이터베이스의 정보를 기반으로 PDF를 만들려고합니다. 내가 할 때 500 내부 서버 오류가 발생합니다. 오류를 던지는 코드는 다음과 같습니다.동적 인 PDF를 만들기위한 Heredoc 문자열과 TCPDF

<?php 
include('db.php'); 

    $pdfArray = array(); 

    $top = '<h1>Med One Equipment List</h1> 
      <table> 
      <thead> 
       <tr> 
        <td>Manufacturer</td> 
        <td>Model</td> 
        <td>Description</td> 
       </tr> 
      </thead> 
      <tbody> 
     '; 
     array_push($pdfArray, $top); 

    while($rowAll = mssql_fetch_array($allResult)) { 
     $html = ' 
     <tr> 
      <td>'.$rowAll["Manufacturer"].'</td> 
      <td>'.$rowAll["Model"].'</td> 
      <td>'.$rowAll["Make"].'</td> 
     <tr>'; 
     array_push($pdfArray, $html); 
    } 

    $bottom = '</tbody> 
       </table>'; 

    array_push($pdfArray, $bottom); 

    $table = implode(" ", $pdfArray); 

    $html = <<<EOF 
    {$table} 
    EOF; 
?> 

TCPDF로 PDF를 작성할 때이 파일을 포함하기 만합니다. 일부 TCPDF 코드를 포함해야하는지 알려주십시오. 나는 그것이 왜 효과가 없을지를 이해할 수 없다. 내 생각 엔 내가 herdoc을 잘못 사용하고있는 것 같습니다.

$html = <<<EOF 
{$table} 
EOF; 

가 탭으로 들여 쓰기처럼 코드의 원시 포맷보고에서

+0

PHP로 코딩 할 때 서버 오류 500은 스크립트가 오류를 유발하고 있음을 의미합니다. ** 모든 오류 메시지를 볼 수있는 방법으로 dev 환경을 구성해야합니다. 당신이 그것을 원한다면 도움을 요청하지만, 추측을 멈추십시오 :) –

+0

나는 오류를 표시하기 위해이 작업을 수행했다. http://www.cs.trincoll.edu/hfoss/wiki/How_to_display_errors_in_PHP – mdance

+0

여기서'$ pdf'가 정의되어 있습니까 ?? – Jarry

답변

0

, 그것은 보인다. 이것이 실제 코드의 경우라면 문제는 heredoc의 끝이 줄의 첫 번째 것이어야한다는 것입니다. 그것은 들여 쓰기가 전혀되지 않으면 중단됩니다. 코드가 들여 쓰기되어 있다면 다음과 같이 보일 것입니다 :

if($example_block){ 
    $html = <<<EOF 
    {$table} 
EOF; 

    {other indented code} 
} 

P. 위에서 언급 한 탭으로 들여 쓰기에 대한 관찰은 질문이 편집되기 전부터 였지만, 탭이나 공백으로 들여 쓰면 깰 것입니다. 또한 카일 (Kyle)은 여는 식별자가 곧바로 새 줄을 따라야한다는 것을 나타내는 데있어 옳습니다.

+0

굉장합니다. 나는 들여 쓰기와 공백이 너무 중요하다는 것을 전혀 몰랐습니다. 카일의 대답도 도움이되었습니다. – mdance

0

코드를 복사하여 붙여 넣기 만하면됩니다. <<<EOF 행 바로 뒤에있는 공간에서 오류가 발생했습니다.

귀하는 $html = <<<EOF(space)입니다.

$html = <<<EOF이어야합니다.