我不是一个核心程序员,但我对编码有一点了解。
但我确实对下面的代码有疑问。 此代码用于后端表单以更改客户设置。
public static function validate( $array )
{
if ( isset( $array[ 'initialen' ]) && trim( $array[ 'initialen' ] ) != '' )
{
$pattern = '([[:digit:]]|[~`!@#$%^&*()_=+{}|\:;"/?,]|[|]|-)+';
if ( ereg( $pattern, $array['initialen'] ))
{
$errors[] = 'Initialen incorrect, alleen letters en punten';
}
else
{
$_SESSION['beheer']['klanten']['temp']['initialen'] = strtoupper( $array[ 'initialen' ] );
}
}
else
{
$errors[] = 'Initialen niet ingevuld';
}
我收到错误:
不推荐使用:第138行的class_klanten.php中弃用了函数ereg()
如果我将其更改为:
if ( ereg( $pattern, $array['initialen'] ))
到
if ( preg_match( $pattern, $array['initialen'] ))
我收到以下错误:
警告:preg_match()[function.preg-match]:第138行的class_klanten.php中的未知修饰符'+'
我该如何解决这个问题?
BR,
史蒂夫
答案 0 :(得分:0)
preg是Perl兼容的Regex库 ereg是POSIX complient regex库
基本上模式应该是不同的,转到http://www.regular-expressions.info/他们在那里有一个非常好/完整的参考。
答案 1 :(得分:0)
正如错误消息所示,ereg
已被弃用,并且您在preg_match
上使用了错误的语法。
将您的代码更改为:
$pattern = '#([\d]|[~`!@#$%^&*()_=+{}|\:;"/?,]|[|]|-)+#i'
if ( preg_match( $pattern, $array['initialen'] ))