2013-01-11 56 views
0

在一個應用程序中,我需要做一個特殊的字符檢查動態設置的特殊字符,這是從db.I嘗試了以下,但它不工作,任何幫助將不勝感激。PHP preg_match檢查動態特殊字符集?

$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

使用preg_quote引用您的特殊字符,像這樣。

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

基於這樣的事實,即從數據庫中的結果是沒有用方括號括起來的,我想你想是這樣來匹配一個特殊字符在您的字符串:

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