Částečné escapování HTML z DB
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- s4muel
- Člen | 92
priamo asi nie,
ale custom helper by nemal
byt problem napisat:
nieco taketo:
$template->registerHelper('customescape', function ($s) {
//spracujes $s podla potreby a vratis upraveny string...napr:
return strip_tags($s, '<br><strong><b><em>...');
});
potom v latte
{$text|customescape}
pisal si vsak, ze chces escapovat a nie odstranit, takze ak nemozes/nechces
pouzit strip_tags();
tak asi jedine htmlspecialchars($s) a potom replacnes
<strong> -> <strong>
</strong> -> </strong>
...
pre vsetky tagy (na toto nie je potrebny custom helper, mozes pouzit aj zretazene helpery |replace() alebo |replaceRE(), ale bude to v zavislosti od poctu tagov asi trochu neprehladne)
pripadne si replacujes povolene tagy za nejake safe-placeholders (povedzme <strong> → ##strong## a </strong> → ##/strong##, potom pouzijes htmlspecialchars() a potom zase replacujes tie placeholdery naspat.