Hallo allemaal
.
Ik zit met een probleem, waar ik nu ook na veel gezoek op Google en GoT niet uit kom. Ik ben bezig met een applicatie waarin de items / nodes aan de DOM binnen php worden toegevoegd, waarna deze als HTML uitgepoept worden.
Het probleem is nu echter dat ik de entities niet gerepresenteerd krijg, omdat de & binnen een entitie, zoals ", áltijd vervangen lijkt te worden door &, en aangezien de data dan verzonden is naar de browser kan ik er niks meer aan doen
.
Ik begin mijn DOM netjes, naar ik hoop, op de volgende manier:
Als ik nu een text met bijvoorbeeld de "é" (é) wil weergeven wil dat niet lukken, wegens het voorgenoemde probleem. ($string is in de volgende voorbeelden é.)
Gewoon appenden, levert een soort van tab op:
Met HTML entities krijg ik é:
Met HTML entities waarin ik vermeld dat het UTF-8 geencodeerd is (zo zit het in de database) krijg ik weer een soort tab.
Ook normaliseren helpt niets:
Als iemand me zou kunnen helpen zou ik daar erg blij van worden
. Een inzicht in wat die rare tabs zijn, of waarom hij anders reageert als ik vermeld dat de encoding UTF-8 is zou ook erg van pas komen
.
Ik zit met een probleem, waar ik nu ook na veel gezoek op Google en GoT niet uit kom. Ik ben bezig met een applicatie waarin de items / nodes aan de DOM binnen php worden toegevoegd, waarna deze als HTML uitgepoept worden.
Het probleem is nu echter dat ik de entities niet gerepresenteerd krijg, omdat de & binnen een entitie, zoals ", áltijd vervangen lijkt te worden door &, en aangezien de data dan verzonden is naar de browser kan ik er niks meer aan doen
Ik begin mijn DOM netjes, naar ik hoop, op de volgende manier:
PHP:
1
2
3
4
5
6
7
8
9
10
| header("Content-Type:text/html;charset=utf-8"); $implementation = new DOMImplementation(); $doctype = $implementation->createDocumentType("HTML", "4.01//EN", "http://www.w3.org/TR/html4/strict.dtd"); $dom = $implementation->createDocument("", "", $doctype); //appending print $dom->saveHTML(); |
Als ik nu een text met bijvoorbeeld de "é" (é) wil weergeven wil dat niet lukken, wegens het voorgenoemde probleem. ($string is in de volgende voorbeelden é.)
Gewoon appenden, levert een soort van tab op:
PHP:
1
2
| $text = $dom->createTextNode($string); $dom->appendChild($text); |
Met HTML entities krijg ik é:
PHP:
1
2
3
| $string = htmlentities($string); $text = $dom->createTextNode($string); $dom->appendChild($text); |
Met HTML entities waarin ik vermeld dat het UTF-8 geencodeerd is (zo zit het in de database) krijg ik weer een soort tab.
PHP:
1
2
3
| $string = htmlentities($string, ENT_QUOTES, "UTF-8"); $text = $dom->createTextNode($string); $dom->appendChild($text); |
Ook normaliseren helpt niets:
PHP:
1
2
| $dom->normalize; print $dom->saveHTML(); |
Als iemand me zou kunnen helpen zou ik daar erg blij van worden