在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非常了解(我已经使用它三年了),并且获得了编程方面的学士学位。我们在争论一个沉默的问题(从一开始就是这样),这个问题已经得到了回答,并且已经持续了八个月。我上面的评论是说,我标记为正确(而且是正确的)的答案陈述了三种不同的方式来完成我的要求,而且格式非常好,易于阅读。你发布的答案是,而且仍然有点难以阅读。当您发布答案时,您希望解释代码中发生了什么/