2015-12-22 295 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