我已经清理了我的表单的输入(textarea字段),当我在我的视图中显示它时,它出现如下:
& lt; p& gt;我要赢得它!我期待在& lt; br /& gt;比赛中心参加比赛。他的目标是对舞台,屏幕和立体声以及现代生活中的幽默和挫折的作品进行交叉授粉。& lt; / p& gt;
在我的控制器中我有这个:
public function init(){
$this->view->setEscape('html_entity_decode');
$this->view->setEscape('stripslashes');
}
但是只有一个可以工作,如果我擦除了一个setEscape,那么另一个工作,反之亦然。所以如果我把它放在第一位但是html_entity_decode不能正常工作,我可以让striplashes工作,反之亦然
答案 0 :(得分:5)
您需要定义自己应该用于转义的函数。例如,您可以在library / My / Tools.php中定义一个类My_Tools,如下所示:
<?php
#Tools.php
class My_Tools {
/**
* My custom escape function
*
* @param string $str String to be escaped
* @return string Escaped string
*/
static function myEscape($str) {
$str = html_entity_decode($str);
return stripslashes($str);
}
}
?>
然后,你的init()可以有以下形式:
public function init() {
require_once(APPLICATION_PATH . '/../library/My/Tools.php');
$this->view->setEscape(array('My_Tools', 'myEscape'));
}
当然最好将工具添加到Autoloader,但这只是一个例子。