log > htmlspecialchars
PHP
htmlspecialcharsという関数があって、これを使おうとすると<?php echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); ?>
みたいな感じになる。はっきり言って長いので、たいていのフレームワークではh($str);
みたいなラッパークラスが実装されている。
私も使ったことあるのだが、生PHPを使ってテンプレートからh関数呼び出して使うみたいなことやったことないな、と思ったので試した。(他からコードを拝借したりして、50分くらいで作ったコードなので汚い。)
https://github.com/deprode/h-sample
セキュリティ対策クラスに静的メソッドを定義しておいて、functions.phpでh関数を定義し、テンプレート内で使用している。テンプレートはSmarty - PHPテンプレートエンジンを10行で自作する - Qiitaを参考にした。
最初はnamespaceなしでやったらすぐできたのだが、namespaceつけたらダメでなんでかな、と思ったらautoloadがnamespaceに対応してないだけだった。(というか、autoloadは自作せずにライブラリ使うべしだった。)
まあ、とりあえずhtmlspecialcharsをh関数にしてテンプレート内で使用することはできたけど、普通ならテンプレート展開時に自動でescape処理されるので、あんまり意味なかったかもしれない。