HTML tags ongeldig maken maar toch intact laten
Hallo! :) Ik was weer eens bezig met een klein scriptje, dit keer om HTML bestanden te bewerken. Het probleem is, wanneer ik een bestand laadt met '</textarea>' of iets dergelijks erin, dan denkt HTML dat ik het tekstveld wil beëindigen, hetgeen ik dus niet wil. :( Is er een manier waardoor de HTML tags genegeerd worden, maar wel normaal in het tekstveld (textarea) komen (dus niet met '<' enzo). Ik weet dat het mogelijk is aangezien ik het vaker heb gezien, ik heb alleen geen idee hoe.
En dit zet alles op het scherm:
Dus: Wat werkt er niet? Dit geeft gewoon een html pagina: Ik laat wel even een screenshot zien van wat ik bedoel. :)
Die maakt van <br /> dit: <br />
En op het scherm wordt <br /> weergegeven als: <br />
Dus waarschijnlijk haal jij er nog een of andere extra function overheen waardoor je een ander resultaat hebt. Dat is dus precies wat htmlentities() doet.
Als je ze met htmlentities() of htmlspecialchars() encode, krijg je dus jou resultaat.
Maar als je daar dus weer <b></b> etc wilt zien zul je ze moeten decoden met html_entity_decode()
Dan krijg je ze weer in beeld zoals je wil. @Robert,
htmlentities()?
Al geprobeerd, maar dat doet hetzelfde. :( Ik had het trouwens over een textarea, ik zie net dat het er een beetje onduidelijk stond. :P
Code (php)
1
2
3
4
2
3
4
<?php
$html = '<html><head><title>test</title></head><body>dit is een test</body></html>';
echo $html;
?>
$html = '<html><head><title>test</title></head><body>dit is een test</body></html>';
echo $html;
?>
En dit zet alles op het scherm:
Code (php)
1
2
3
4
2
3
4
<?php
$html = '<html><head><title>test</title></head><body>dit is een test</body></html>';
echo htmlentities($html);
?>
$html = '<html><head><title>test</title></head><body>dit is een test</body></html>';
echo htmlentities($html);
?>
Dus: Wat werkt er niet?
Je HTML is nu gecleaned opgeslagen, daarom krijg je het zo te zien.
Die maakt van <br /> dit: <br />
En op het scherm wordt <br /> weergegeven als: <br />
Dus waarschijnlijk haal jij er nog een of andere extra function overheen waardoor je een ander resultaat hebt.
Als je ze met htmlentities() of htmlspecialchars() encode, krijg je dus jou resultaat.
Maar als je daar dus weer <b></b> etc wilt zien zul je ze moeten decoden met html_entity_decode()
Dan krijg je ze weer in beeld zoals je wil.