1

DOMDocument を使用してページからスナップショット html を表示しようとしています。私がこれまでに持っているのは、リモートの場所からロードしたホームページです

$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($remote);

次に、ヘッド領域と、コンテンツを追加するメイン コンテンツ内の div の 2 つの要素を選択します (html は文字列変数から取得されます)。

$head = $dom->getElementsByTagName('head')->item(0);
$noticia2 = $dom->getElementById('content_home');

これに続いて、スクリプトタグにコンテンツを追加しました

$jquery = '$(document).ready(function(){ $("#feed_home").hide()});
      if (window.location.hash) {
        Destino = window.location.hash.replace(\'#!\', \'?\');

             window.location.href = window.location.href.split(\'#\')[0] + Destino;
    }


';    

$script = $dom->createElement('script', $jquery);
$script_type = $dom->createAttribute('type');

$script_type->value = 'application/javascript';
$script->appendChild($script_type);

$head->appendChild($script);

次に、データベースを調べて、mysql_fetch_array を使用して大きな $content 文字列の html タグでフォーマットする情報を収集します。そして今、私の問題.... $div ノード内にこれを追加しようとするたびに、このコンテンツを HTML として扱うことができないため、このコンテンツを表示する際に問題が発生します。

$div = $dom->createElement('div', $content);
$div_class = $dom->createAttribute('class');
$div_class->value = 'noticia-ajax';
$div->appendChild($div_class);
$noticia2->appendChild($div);
echo $dom->saveHTML();

私が得るのは通常のページで、div "noticia-ajax" が適切に形成されており、この男の中にあります

SOME TEXT <BR> AND NO HTML TAG TREATED AS HTML TAG <BR> SOMETHING LIKE THIS 

そしてもちろん、このタグをすべて html として読みたいと思います! 右?

4

1 に答える 1

3

あなたがする必要があるのは、ドキュメントフラグメントを作成することだと思います:

$div = $dom->createElement( 'div'); // No $contents here
$fragment = $dom->createDocumentFragment();
$fragment->appendXML( $content);
$div->appendChild( $fragment);
于 2013-03-27T22:14:30.463 に答える