0

在应用程序中,我需要对从 db 获取的动态特殊字符集进行特殊字符检查。我尝试了以下方法,但它不起作用,任何帮助将不胜感激。

$specialCharacters = SystemParameters::model()->findByAttributes(array('sys_param_name' => 'SPLCHR'));
// [\^£$%&*()}{@#~?><>,|=_+¬-]'"; This is the resulting value
$var = addslashes($specialCharacters->sys_param_val);

if (preg_match('/' . $var . '/', $string))
    return false;
else
    return true;
4

1 回答 1

1

preg_quote这样引用你的特殊字符。

preg_match('/' . preg_quote($var, '/') . '/', $string)

基于这样一个事实,您的数据库结果没有用方括号括起来,我想您希望这样的内容与字符串中的单个特殊字符匹配:

preg_match('/[' . preg_quote($var, '/') . ']/', $string)
于 2013-01-11T10:40:53.163 回答