我正在尝试根据我拥有的数据库中的信息构建PDF。我这样做时出现500内部服务器错误。抛出错误的代码是:
<?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。
答案 0 :(得分:0)
通过查看代码的原始格式,它看起来像
$html = <<<EOF
{$table}
EOF;
缩进了一个标签。如果真实代码就是这种情况,那么问题是heredoc的结束必须是一行中的第一件事。如果它是缩进的,它将会中断。因此,如果您的代码是缩进的,则需要看起来像这样:
if($example_block){
$html = <<<EOF
{$table}
EOF;
{other indented code}
}
P.S。关于使用上面提到的选项卡进行缩进的观察是在问题被编辑之前,但是如果它用一个或多个空格缩进,它将会破坏。此外,Kyle说明开头标识符也必须紧跟一个新行。
答案 1 :(得分:0)
我只是复制并粘贴你的代码。错误来自位于<<<EOF
行之后的空格。
您有$html = <<<EOF(space)
。
应为$html = <<<EOF
。