2013-09-22 7 views
0

условные комментарии, такие как:PHP удалить условные комментарии, которые вызывают DOMXPath неудачу

<!--[if lt IE 7 ]><!--> <html lang="hi" class="ie ie6"> <!--<![endif]--> 

вызывает

$doc->loadHTML($content); 
$xpath = new DOMXPath($doc); 

не работает должным образом. любой подготовленный код для их удаления?

+0

работает для меня .. http://3v4l.org/tNfPX – hek2mgl

+0

Что делать, если некоторые из них существуют на странице? Я хочу только IE html – werva

ответ

0

Если разбор HTML не работает, то вы можете использовать регулярные выражения, что-то вроде этого примера:

$str = "aa<!--[if lt IE 7 ]><!--> <html lang=\"hi\" class=\"ie ie6\"> <!--<![endif]-->bb cc"; 
$pattern = "/(<!--[if\s[lg]+t\sIE\s[0-9]+\s]><!-->)(.*)(<!--<!\[endif\]-->)/"; 
$str = preg_replace($pattern, '', $str);  
echo $str; 

Или, чтобы сохранить содержимое условных тегов:

$str = preg_replace($pattern, '$2', $str); 
echo $str; 
+0

что если между '' и '' что-то еще написано? – werva