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 '&lt;' enzo). Ik weet dat het mogelijk is aangezien ik het vaker heb gezien, ik heb alleen geen idee hoe.

Alvast bedankt!
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
Dit geeft gewoon een html pagina:
<?php
$html = '<html><head><title>test</title></head><body>dit is een test</body></html>';
echo $html;
?>

En dit zet alles op het scherm:
<?php
$html = '<html><head><title>test</title></head><body>dit is een test</body></html>';
echo htmlentities($html);
?>

Dus: Wat werkt er niet?
Ik laat wel even een screenshot zien van wat ik bedoel. :)


Het zou er zo uit moeten zien binnen het tekstveld:

??????. <br /></div></div></textarea></div></div></div>


En dit is wat hij nu laat zien:

??????. &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
Je HTML is nu gecleaned opgeslagen, daarom krijg je het zo te zien.
Dat is dus precies wat htmlentities() doet.
Die maakt van <br /> dit: &lt;br /&gt;

En op het scherm wordt &lt;br /&gt; weergegeven als: <br />

Dus waarschijnlijk haal jij er nog een of andere extra function overheen waardoor je een ander resultaat hebt.
@Robert,

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.

Reageren