natrafiłem na problem którego rozwiązanie początkowo wydawało się bardzo błahe, a jednak baruję się z tym od dłuższego czasu i nic :/
Do rzeczy, mam podany pewien kod HTML i potrzebuję z niego wyciągnąć to co jest wewnątrz znacznika body,
wystarczyła chwilka googlowania i mam gotowy kod
function get_inner_html( $node ) { $innerHTML= ''; $children = $node->childNodes; foreach ($children as $child) { $innerHTML .= $child->ownerDocument->saveXML( $child ); } return $innerHTML; } $html='<HTML><HEAD> <BODY> <P align=center>1111</P> <br /> <P style="width:100px"></P> </BODY> </HTML'; $doc = new DOMDocument(); $doc->loadHTML($html); $node = $doc->getElementsByTagName('body');
kod wynikowy wygląda tak
<p style="width:100px"/>
Jak widać pierwszy znacznik p oraz br zachowały się prawidłowo, problemem jest drugi i trzeci znacznik znacznik p. Jeśli znaczniki zostaną zapisane w taki sposób i wyświetlę je w przeglądarce to cały kod się rozwala bo przeglądarka uznaje że te znaczniki nie mają zamknięć.
Oczywiście DOMDocument ma opcję wymuszającą tworzenie domknięć ale jak ją dodam to tworzy mi <br></br>

Pomożecie ?
