在CodeIgniter中调用单独文件中的字符串

在CodeIgniter中调用单独文件中的字符串,codeigniter,preg-match,Codeigniter,Preg Match,我正在为我的网站建立亵渎/种族诽谤过滤器。我让它工作,但是我的preg\u match字符串很长。我只是想知道是否有办法在CodeIgniter中将这个长字符串保存在一个单独的文件中,然后在需要时在preg\u match中调用它 我在谷歌上搜索过这个,但什么也找不到,所以我想我应该在这里问一下 我现在要做的是在模型中托管我的字符串,然后调用: if(preg_match($filterRegex)){ databaseStuffHere(); } 这里有一些选择。根据使用此字符串和函数的

我正在为我的网站建立亵渎/种族诽谤过滤器。我让它工作,但是我的
preg\u match
字符串很长。我只是想知道是否有办法在CodeIgniter中将这个长字符串保存在一个单独的文件中,然后在需要时在
preg\u match
中调用它

我在谷歌上搜索过这个,但什么也找不到,所以我想我应该在这里问一下

我现在要做的是在模型中托管我的字符串,然后调用:

if(preg_match($filterRegex)){
  databaseStuffHere();
}

这里有一些选择。根据使用此字符串和函数的方式和位置,其中一个可能比其他更好

配置

您可以在
application/config/config.php

$config['filter_regex'] = 'yourReallyLongString';
主配置由CodeIgniter自动加载,因此您可以像这样使用它:

$filterRegex = $this->config->item('filter_regex');
if(preg_match($filterRegex, $subject))
{
    databaseStuffHere();
}
常数

如果您在多个地方使用这个长字符串,并且具有全局访问权限会很有用,那么可以在
application/config/constants.php
中将其定义为常量。它还可以防止您意外地重新定义该值

define('FILTER_REGEX', 'yourReallyLongString');
然后将其与您的函数一起使用,如下所示:

$filterRegex = FILTER_REGEX;
if(preg_match($filterRegex, $subject))
{
    databaseStuffHere();
}
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('filter_slurs'))
{
    function filter_slurs($subject = '')
    {
        $filter_regex = 'yourReallyLongString';
        if (preg_match($filter_regex, $subject))
        {
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }   
}
$this->load->helper('slur_filter_helper');  //assumes the helper file is: slur_filter_helper.php

if(filter_slurs($subject))
{
    //do something
}
else
{
    //do something else
}
助手

最后,你可以使用一个。您可以在需要时加载辅助对象,也可以自动加载。您可以在
应用程序/helpers/
中创建自己的助手。它可能看起来像这样:

$filterRegex = FILTER_REGEX;
if(preg_match($filterRegex, $subject))
{
    databaseStuffHere();
}
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('filter_slurs'))
{
    function filter_slurs($subject = '')
    {
        $filter_regex = 'yourReallyLongString';
        if (preg_match($filter_regex, $subject))
        {
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }   
}
$this->load->helper('slur_filter_helper');  //assumes the helper file is: slur_filter_helper.php

if(filter_slurs($subject))
{
    //do something
}
else
{
    //do something else
}

您可以将它与配置文件(system/application/config/config.php)一起使用,以设置与配置相关的变量

==================================在config.php中定义所需内容===========================

$config['REQUIRED_SRTING'] = 'YOUR_REQUIRED_LONG_STRING_OR_WHAT_YOU_WANT_STORE';
define('CONSTANT_STRING','YOUR_REQUIRED_LONG_STRING_OR_WHAT_YOU_WANT_STORE');
但设置常数的最佳位置是

(system/application/config/constants.php)来存储站点首选项常量

============================在constants.php中定义所需内容=========================

$config['REQUIRED_SRTING'] = 'YOUR_REQUIRED_LONG_STRING_OR_WHAT_YOU_WANT_STORE';
define('CONSTANT_STRING','YOUR_REQUIRED_LONG_STRING_OR_WHAT_YOU_WANT_STORE');

非常感谢你!我最后把它定义为一个常数,因为我在别的地方也叫它,它就像一个符咒!不用担心,我很高兴我的回答有帮助!你能解释一下这是怎么回事吗?这个问题已经得到了回答,所以我不知道您想用配置做什么。这里的主要问题是存储一个长字符串,而不是一个页面的路径。我只想澄清一下,在codeigniter中有两种方法来存储常量数据,第一种是system/application/config/config.php文件,但最好的方法是system/application/config/constants.php,在这里,我们可以直接设置常量。你上面的答案仍然不是很清楚,因为它都在一个代码块中。我以为你只是给出了一大块代码。上面的答案实际上概括了三种不同的方法来声明常量。好的,你对codeIgniter或编程有什么想法吗?在condeIgniter中,你可以在两个位置或两个文件中设置常量。但是常量集的最佳位置是constant.php而不是config.php。在constant.php中,可以像在简单的php编码中一样设置常量。但是在配置中,你必须遵循codeigniter样式的常量设置。对不起?我对codeigniter非常了解(我已经使用它三年了),并且获得了编程方面的学士学位。我们在争论一个沉默的问题(从一开始就是这样),这个问题已经得到了回答,并且已经持续了八个月。我上面的评论是说,我标记为正确(而且是正确的)的答案陈述了三种不同的方式来完成我的要求,而且格式非常好,易于阅读。你发布的答案是,而且仍然有点难以阅读。当您发布答案时,您希望解释代码中发生了什么/