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 に答える