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

apply custom filter to $_GET variables everywhere everytime codeigniter

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

Naim Malek 告诉我使用 helper,但我不太明白在这种情况下它是如何工作的..

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

首先在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',
);

最后在[=46=中创建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 参数时,它都会在 运行 控制器构造函数之后进行修剪。