2013-03-27 19 views
1

所以即時嘗試使用DOMDocument顯示一個頁面的快照HTML。我至今是我的主頁,我從遠程位置加載DOMDocument附加已經固定的HTML字符串

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

那麼,我選擇兩個要素,我的頭部區域,並在那裏我會加入我的內容(HTML從把主要內容內一個div字符串變量)

$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); 

然後我通過我的數據庫,我收集了一些信息,我將與HTML T爲在格式化ags在使用mysql_fetch_array的大內容字符串中。現在我的問題....每當我嘗試追加這個我的$ 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(); 

什麼,我得到的是一個正常的頁面,與我格「noticia-Ajax」的良好形成,然後這傢伙裏面,我有

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

而且ofcourse我想有這一切的標籤閱讀爲HTML!對?

+0

對不起!不...它是一個帶有html的字符串! NO ARRAY,我的壞。 – 2013-03-27 22:09:32

+0

看到我對一個類似問題的回答: http://stackoverflow.com/questions/2233683/php-domdocument-replace-domelement-child-with-html-string/17661043#17661043 – Codebeat 2013-07-15 18:23:16

回答

3

我認爲你需要做的就是創建一個文檔片段的內容:

$div = $dom->createElement('div'); // No $contents here 
$fragment = $dom->createDocumentFragment(); 
$fragment->appendXML($content); 
$div->appendChild($fragment); 
+0

爲什麼追加XML instad的子? – 2013-03-27 22:25:56

+0

@FoNko - appendChild期待一個DOMNode,你沒有一個。你所擁有的只是一串XML(在這裏是HTML)數據。 – nickb 2013-03-27 22:27:51

+0

它說文檔片段是空的:S爲行$ div-> appendChild($ fragment); – 2013-03-27 22:35:48