Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie kodu HTML ze znacznika body
sazian
post
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Witam,
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
  1.  
  2. function get_inner_html( $node ) {
  3. $innerHTML= '';
  4. $children = $node->childNodes;
  5.  
  6. foreach ($children as $child) {
  7. $innerHTML .= $child->ownerDocument->saveXML( $child );
  8. }
  9.  
  10. return $innerHTML;
  11. }
  12.  
  13. $html='<HTML><HEAD>
  14.  
  15. <BODY>
  16. <P align=center>1111</P>
  17. <br />
  18. <P style="width:100px"></P>
  19.  
  20. </BODY>
  21. </HTML';
  22. $doc = new DOMDocument();
  23. $doc->loadHTML($html);
  24. $node = $doc->getElementsByTagName('body');
  25. echo get_inner_html($node->item(0));
  26.  


kod wynikowy wygląda tak
  1.  
  2. <p align="center">1111</p>
  3. <br/><p/>
  4. <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> (IMG:style_emoticons/default/sad.gif)


Pomożecie ? (IMG:style_emoticons/default/smile.gif)

Ten post edytował sazian 2.12.2015, 20:15:11
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 09:59