Docxpresso库忽略渲染中的符号和符号

时间:2019-05-14 15:17:19

标签: php html

我正在使用the Docxpresso library渲染文档。用HTML呈现文本时,ODT文件中的结果将忽略或消除与号“&”。如何修改库,以使其不删除“&”?下面,我留下我使用的代码:

$html = '
  <style>
       * {font-family: Arial; font-size: 8pt}
  </style>

  <p style="text-align: center;"><strong><u>MINUTA >> << &&&</u></strong></p>';

$doc = new Docxpresso\createDocument();
$format = '.odt'; //only .odt because I dont have licence

$doc->html(array('html'=>$html, 'encoding' => 'UTF-8'));

$doc->render('sample' . $format);

header('Location: ../creditogarveh/sample'.$format);

我希望归档中的输出为:“ MINUTA >> << &&&”,但实际输出为:“ MINUTA >>”。

1 个答案:

答案 0 :(得分:0)

如果要输出为HTML,则必须转义特殊字符<>&"。使用内置的htmlspecialchars()函数来执行此操作。

请注意,the heredoc format对于输出大块文本更好,尤其是在处理引号和内插值时。

$value = "MINUTA >> << &&&";
$value = htmlspecialchars($value);
// $value is now "MINUTA &gt;&gt; &lt;&lt; &amp;&amp;&amp;"

$html = <<< HTML
  <style>
       * {font-family: Arial; font-size: 8pt}
  </style>

  <p style="text-align: center;"><strong><u>$value</u></strong></p>
HTML;

$doc = new \Docxpresso\createDocument();
$format = ".odt";
$doc->html([
    "html" => $html,
    "encoding" => "UTF-8"
]);
$doc->render("sample$format");
header("Location: ../creditogarveh/sample$format");