preg match — заменить старую функцию eregi переполнением стека

У меня проблемы с исправлением этой старой функции PHP eregi, потому что она использует параметр IN ..
Это скрипт для генерации капчи class_log.php от Матье МЭРИ

старый код:

$sMotif = "--$sIN ([a-zA-Z0-9]{3,4},)*([a-zA-Z0-9]{3,4}){1}";
if ((eregi("$sMotif ",$this->sParam))||(eregi("$sMotif$",$this->sParam))){
$this->aParam['bExtension'] = TRUE;
$this->aParam['aExtension'] = $this->_PARAM_get_extension($sIN);
$this->aParam['inExtension'] = ($sIN=='e');
$this->aParam['iParameters']++;
}

Я пытаюсь с этим, но не уверен, что это правильно?

$sMotif = "/--$sIN ([a-zA-Z0-9]{3,4},)*([a-zA-Z0-9]{3,4}){1}/i";
if ((preg_match("$sMotif ",$this->sParam))||(eregi("$sMotif$",$this->sParam))){
$this->aParam['bExtension'] = TRUE;
$this->aParam['aExtension'] = $this->_PARAM_get_extension($sIN);
$this->aParam['inExtension'] = ($sIN=='e');
$this->aParam['iParameters']++;
}

Тпх

0

Решение

Вот как я бы сделал эту работу:

$sMotif = "/--$sIN ([a-zA-Z0-9]{3,4},)*([a-zA-Z0-9]{3,4}) ?/";
if ( preg_match($sMotif,$this->sParam)) {
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]