2015-12-22 3 views
-2

У меня есть файлы, которые входят в них, и в них есть код сервера php. Ожидаются. Мне интересно, есть ли способ с SimpleXMLDom анализировать элементы, даже если в документе есть теги php.Анализ HTML с кодом PHP

Пример

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

Я хотел бы получить содержимое HTML в виде обычного текста с тегами PHP сервера. Похоже, что просто загрузка этого блока кода вызовет исключения.

Я знаю, что это очень легко Eval весь блок следующим:

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

, но то, что я хотел бы быть в состоянии сделать это вытащить элемент, и если есть PHP оценить код, много как был дан ниже, но это не кажется, что я могу загрузить HTML код PHP и разобрать его с помощью SimpleXMLDom, если есть трюк с библиотекой или другой, который будет делать это просто

+0

Насколько изощрен этот код? Одним из возможных подходов является «eval», который блокируется с включенным выходным буфером (например, «include»), затем анализирует собранное содержимое этого буфера. По-видимому, это не очень хорошая идея, если есть хоть малейшая вероятность, что PHP-код может стать мошенником. – raina77ow

+0

Да, но я хотел бы только оценить код 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

Смежные вопросы