我希望在我的应用程序的所有文本字段上都有一些过滤器,以了解某个字段是否包含一些不良内容,例如过滤掉用户的不良口碑。
我想过某些方法
preg_replace()
超过php://input
流,并替换不良内容我想以动态的方式做到这一点,并且不想写很多规则
对于我的情况(来自上方或任何其他方式),最佳解决方案是什么?
更新:我正在寻找一种方法来替换用户输入中的诅咒和咒骂,并将其替换为其他内容
答案 0 :(得分:1)
希望这就是你所要求的
您想要删除
Scripts
在菲尔兹Tags
等您可以使用Yii Input Extension。它会从用户的数据中删除不需要的数据。
你有两种方法可以做到这一点
config/main.php
如果全局完成,并且当您使用某些CKEditor
或tinyeditor
时,您将无法获得所需的html发布。但是你有方法来获得它们
修改强>
您的情况是删除用户输入中不需要的字词
所以
protected function beforeAction($action) {
//Write your logic here with the posted variables.
return parent::beforeAction($action);
}
这可以在所有控制器中完成一次(确定这样可行)。
(未经审查)另一种方法是将它放在父控制器Controller
答案 1 :(得分:1)
如果您的列超过模型,您可以使用以下内容:
public function rules()
{
$purifier = getHtmlPurifier();
return array(
array('column', 'filter', 'filter' => array($obj = $purifier, 'purify')),
);
}
如果您不想使用htmlPurifier,可以通过创建函数在任何其他类型上创建过滤器。