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>

scriptドキュメントがHTMLドキュメントとしてライブラリに渡されるため、PHPコードをタグでラップする必要があります。ライブラリにはスクリプトタグ内でPHPコードを実行する機能がありますが、この場合は奇妙に機能しています。

私が期待していること:

[[str_to_replace]]HTML入力フィールドになる必要があります。

私が得ているもの:

[[str_to_replace]]リテラル文字列になります<input type="text" />

2番目の結果を取得するにはどうすればよいですか?

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 に答える