0

我使用str_replace如下:

<html>
    <head>
    </head>

    <body>
    <script type="text/php">
        $new_str = str_replace( '[[str_to_replace]]' , $GLOBALS['html'] , $original_str );
    </script>

    <div class="wrapper">[[str_to_replace]]</div>

    <?php 

    // multiple includes

    // lots and lots of code

    //PHP code to calculate HTML code
    //value of $html depends on data calculated after div.wrapper is drawn
    $GLOBALS['html'] = '<input type="text" />';
    ?>    

    </body>
</html>

我被迫将 PHP 代码包装在script标签中,因为该文档作为 HTML 文档传递给库。该库能够在脚本标签内执行 PHP 代码,但在这种情况下工作异常。

我所期待的:

[[str_to_replace]]应该成为一个 HTML 输入字段。

我得到了什么:

[[str_to_replace]]成为文字字符串<input type="text" />

如何获得第二个结果?

4

2 回答 2

1

听起来您想要做的是用解码的 HTML 实体替换字符串。您可能想要这样做:

$htmlEntityString = '&amp;'; // String containing HTML entities that you want to decode.
$new_str = str_replace( '[[str_to_replace]]' , html_entity_decode($htmlEntityString) , $original_str );

在这种情况下,任何带有 HTML 实体形式的 HTML 都将被解码并替换子字符串。

阅读更多关于它的所有选项:

http://php.net/manual/en/function.html-entity-decode.php

于 2013-03-18T03:08:24.287 回答
1

您可能误解了您可以使用内联脚本做什么。在 dompdf 中,HTML 与内联脚本分开解析。您使用内联脚本插入到文档中的任何 HTML 都将被视为纯文本。您应该做的是首先解析您的文档,然后将结果传递给 dompdf。

仅供参考,很难从您的示例中确切地看到您在代码中所做的事情。另外,我们看不到 dompdf 发生了什么。我很难看出一切是如何联系在一起的。

于 2013-03-20T02:16:05.677 回答