Найдите две альтернативы для функций ereg - PullRequest
1 голос
/ 03 апреля 2010

Функции ereg и eregi будут удалены из Php. Пожалуйста, помогите найти альтернативы для следующих функций ereg:

1) Разрешить IP-адреса только для определенных диапазонов:

$targetAddr = "60.37..*..*";  
if (!ereg($targetAddr, $_SERVER['REMOTE_ADDR'])) {
die;
} 

2) Для замены ряда точек, таких как .......................

$message = ereg_replace("[.]{3,}", "... ", $message);

Ответы [ 2 ]

3 голосов
/ 03 апреля 2010

Просто используйте preg_match и preg_replace. Эти регулярные выражения будут работать с синтаксисом регулярных выражений Perl.

Однако, первое регулярное выражение, вероятно, должно быть написано

$targetAddr = "60[.]37[.].*[.].*";

если он должен делать то, что вы говорите, он должен. (В качестве альтернативы используйте обратную косую черту.)

1 голос
/ 04 апреля 2010

Это работает для меня:

$targetAddr = "/^60\.37\..+/"; 
if (!preg_match($targetAddr, $_SERVER['REMOTE_ADDR'])) {
die;
}

$message = preg_replace("/[.]{3,}/", "... ", $message);

Томас и Аномаре, ваши ответы помогли мне найти правильное решение. Спасибо.

...