2015-12-22 531 views
-2

我有一些文件,它們中也包含php服務器代碼。預計。我想知道是否有一種方法可以用SimpleXMLDom來解析元素,即使文檔中有php標籤。用PHP代碼解析HTML

<html> 
    <? if(false) { ?> 
    Never print this 
    <? } ?> 
</html> 

我想獲得的HTML內容與PHP服務器標籤純文本。看來只是加載這段代碼會導致異常。

我知道這是很容易的,按以下條件EVAL整個塊:

eval('?>'.$html.'<?'); 

,但我希望能夠做的是拉的元素,如果有PHP的評估代碼,多以下給出類似,但它似乎沒有我可以加載HTML代碼PHP和通過SimpleXMLDom分析它是否存在與庫或其他一招,將做到這只是

+0

這段代碼有多複雜?一種可能的方法是在啓用了輸出緩衝區的情況下(例如用'include')對該塊進行評估,然後解析收集到的緩衝區內容。顯然,如果PHP代碼可能會變成流氓,那麼這是一個不錯的主意。 – raina77ow

+0

是的,但我只想一次遍歷dom樹時只評估php代碼。 –

回答

0

你可以用

<?php 
    $xml=simplexml_load_file("your_file.php"); 


    foreach($xml->children() as $child) 
    { 
    if (substr(ltrim($child->getName(), " \t"), 0,1) == "?">{ 
     you have php code 
    } 
    } 
?> 
嘗試
+0

這將是偉大的,如果這是可能的,但只是加載文件導致錯誤。 –

+0

錯誤是什麼? – scaisEdge

+0

這意味着PHP不是一個很好格式化的xml ..如果是這樣,你不能使用simplexml進行解析,但你可以考慮解析文本.. – scaisEdge