MPDF 不呈现 html 标签
MPDF not rendering html tags
我正在使用我使用 composer 安装的 MPDF。我有一些内容存储在 MySQL 数据库中,其中包括 HTML 标签和文本。我希望用户能够创建和编辑自己的信件。
当我去打印 pdf 时,我得到一个 PDF 页面,页面上显示 HTML 标签。奇怪的是;如果我获取该输出并将其复制并传递到 PHP 页面中的 WriteHTML() 函数,该页面将以正确的文本和格式呈现。 HTML 标记似乎不是问题,但 Mpdf 如何呈现 HTML.
这是发送到 $WriteHTML 之前的 $headder 输出:
<h1 style="text-align: center;">Baddeck Academy Scholarships</h1> <h6
style="text-align: center; line-height: 1;"><span style="color:
#e67e23;">320 Shore Rd.</span></h6> <h6 style="text-align: center;
line-height: 1;"><span style="color: #e67e23;">Baddeck, NS</span></h6>
<h6 style="text-align: center; line-height: 1;"><span style="color:
#e67e23;">B0E 1B0</span></h6>
这是导出的页面内容以及我正在使用的代码。
这是 Mpdf php 页面:
<?php
include('connect.php');
$id = (filter_var($_GET['id'], FILTER_SANITIZE_STRING));
$sql = "SELECT * FROM `money_letters_contents` WHERE `id` = '$id' LIMIT 0,1000";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$headder = ($row['headder']);
$body = ($row['body']);
$footer = ($row['footer']);
}
} else {
}
$html = $headder;
//==============================================================
//==============================================================
//==============================================================
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->WriteHTML("$headder");
$mpdf->WriteHTML("$body");
$mpdf->Output();
exit;
好的,在寻找这个答案 3 天后,在@Finew 的帮助下,我查看了从服务器获取数据的方式,并创建了另一个步骤,我使用 mysqli $row 并存储它作为另一个变量,然后我对那个变量做了 htmlspecialchars_decode 。这似乎有效,现在产生了正确的结果。
所以对于任何想要查看我在这里所做的工作的人来说,这是工作代码。
?php
include('connect.php');
$id = (filter_var($_GET['id'], FILTER_SANITIZE_STRING));
$sql = "SELECT * FROM `money_letters_contents` WHERE `id` = '$id' LIMIT 0,1000";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$headder = ($row['headder']);
$body = ($row['body']);
$footer = ($row['footer']);
}
} else {
}
$headder1 = htmlspecialchars_decode($headder);
$body1 = htmlspecialchars_decode($body);
$html = $headder;
//==============================================================
//==============================================================
//==============================================================
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->WriteHTML("$headder1");
$mpdf->WriteHTML("$body1");
$mpdf->Output();
exit;
感谢所有看过这个问题的人。
我正在使用我使用 composer 安装的 MPDF。我有一些内容存储在 MySQL 数据库中,其中包括 HTML 标签和文本。我希望用户能够创建和编辑自己的信件。 当我去打印 pdf 时,我得到一个 PDF 页面,页面上显示 HTML 标签。奇怪的是;如果我获取该输出并将其复制并传递到 PHP 页面中的 WriteHTML() 函数,该页面将以正确的文本和格式呈现。 HTML 标记似乎不是问题,但 Mpdf 如何呈现 HTML.
这是发送到 $WriteHTML 之前的 $headder 输出:
<h1 style="text-align: center;">Baddeck Academy Scholarships</h1> <h6
style="text-align: center; line-height: 1;"><span style="color:
#e67e23;">320 Shore Rd.</span></h6> <h6 style="text-align: center;
line-height: 1;"><span style="color: #e67e23;">Baddeck, NS</span></h6>
<h6 style="text-align: center; line-height: 1;"><span style="color:
#e67e23;">B0E 1B0</span></h6>
这是导出的页面内容以及我正在使用的代码。
这是 Mpdf php 页面:
<?php
include('connect.php');
$id = (filter_var($_GET['id'], FILTER_SANITIZE_STRING));
$sql = "SELECT * FROM `money_letters_contents` WHERE `id` = '$id' LIMIT 0,1000";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$headder = ($row['headder']);
$body = ($row['body']);
$footer = ($row['footer']);
}
} else {
}
$html = $headder;
//==============================================================
//==============================================================
//==============================================================
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->WriteHTML("$headder");
$mpdf->WriteHTML("$body");
$mpdf->Output();
exit;
好的,在寻找这个答案 3 天后,在@Finew 的帮助下,我查看了从服务器获取数据的方式,并创建了另一个步骤,我使用 mysqli $row 并存储它作为另一个变量,然后我对那个变量做了 htmlspecialchars_decode 。这似乎有效,现在产生了正确的结果。
所以对于任何想要查看我在这里所做的工作的人来说,这是工作代码。
?php
include('connect.php');
$id = (filter_var($_GET['id'], FILTER_SANITIZE_STRING));
$sql = "SELECT * FROM `money_letters_contents` WHERE `id` = '$id' LIMIT 0,1000";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$headder = ($row['headder']);
$body = ($row['body']);
$footer = ($row['footer']);
}
} else {
}
$headder1 = htmlspecialchars_decode($headder);
$body1 = htmlspecialchars_decode($body);
$html = $headder;
//==============================================================
//==============================================================
//==============================================================
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->WriteHTML("$headder1");
$mpdf->WriteHTML("$body1");
$mpdf->Output();
exit;
感谢所有看过这个问题的人。