每次代码点火器将自定义过滤器应用于 $_GET 变量



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

Naim Malek告诉我使用助手,但我不太明白在这种情况下它会如何工作。

您可以使用钩子来修剪每个"q"get 参数。

首先在应用程序/配置/配置中启用钩子.php

$config['enable_hooks'] = TRUE;

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

$hook['post_controller_constructor'] = array(
    'class' => 'Trim_hook',
    'function' => 'run',
    'filename' => 'Trim_hooks.php',
    'filepath' => '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 参数时,它都会在运行控制器构造函数后进行修剪。

最新更新