PHP preg_match检查动态特殊字符集?

时间:2013-01-11 10:39:18

标签: php preg-match

在一个应用程序中,我需要对从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;

1 个答案:

答案 0 :(得分:1)

使用preg_quote引用您的特殊字符。

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

基于这样的事实,你的数据库结果没有用方括号括起来,我想你想要这样的东西与字符串中的一个特殊字符匹配:

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