2013-03-28 45 views
2

是否有可能使用PHP簡單的HTML DOM解析器添加一個新的腳本taga在一個simple_html_dom對象的頭部,該對象具有完整的主頁html?PHP簡單的HTML DOM解析器添加腳本標記

我需要在該模板中添加一些節點,其中一個節點是帶有jQuery的腳本標記,另一個是帶有一些文本的div,我從數據庫中提取。

我以前做了這樣的事情:(DOM文檔帶)

$dom = new DOMDocument('1.0', 'UTF-8'); 
$dom->loadHTML($remote); 
$head = $dom->getElementsByTagName('head')->item(0); 
$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); 
+1

你爲什麼從DOM改變simple_html_dom? (部分只是好奇,但也可能允許某人建議第三個選擇...) – IMSoP

+0

,因爲它很容易從完整模板中選擇任何你需要的東西,只需使用CSS selectos就可以加載simple_hteml_dom對象。像jquery一樣。 DOM文檔真的很難遵循..至少對我來說 –

+2

@FoNko在這種情況下,你可能想要考慮Symfony [CssSelector](http://symfony.com/doc/current/components/css_selector.html )和[DomCrawler](http://symfony.com/doc/current/components/dom_crawler.html)庫,可以讓你做到這一點,但更強大。 –

回答

1

沒有,簡單的HTML DOM沒有做DOM操作。隨着phpquery雖然你可以這樣做:

$doc->find('head')->append('<script src="foo"></script>'); 
+0

哦......這很好。 –

相關問題