每次codeigniter都将自定义过滤器应用于$ _GET变量

时间:2017-05-23 03:35:59

标签: php codeigniter input-filtering

我需要修剪项目中的每个$this->input->get('q', true);。有没有办法做到这一点,而不是每次都添加trim()

Naim Malek告诉我使用帮助器,但我不太明白它在这种情况下会起作用..

1 个答案:

答案 0 :(得分:1)

您可以使用hooks修剪每个' q'得到参数。

首先在 application / config / config.php

中启用挂钩
$config['enable_hooks'] = TRUE;

然后在 application / hooks 中创建一个带有自定义名称的文件(例如:Trim_hooks.php),并在钩子配置文件中写下代码( application / config / hooks.php )文件。

$hook['post_controller_constructor'] = array(
    'class' => 'Trim_hook',
    'function' => 'run',
    'filename' => 'Trim_hooks.php',
    'filepath' => 'hooks',
);

最后在 application / hooks 中创建 Trim_hooks.php 文件:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Trim_hook
{
  function run()
  {
    if (isset($_GET['q']))
    {
      $_GET['q'] = trim($_GET['q']);
    }
  }
}

每次在GET中都有q参数时,它会在运行控制器构造函数后进行修整。