Функция function eregi() нерекомендуема

Все работает привосходно, один вопрос.. нашел в файлах еще вот такой код
Код:
if (!eregi("&sid", $_SERVER['REQUEST_URI']))  header("Location: http://".STATIC3."/static/404error.html");
пока ошибки не вижу, но стоит его заменить?
если до, то я делаю исходя Ваших поправок:
Код:
if (preg_match("/&sid/", $_SERVER['REQUEST_URI']))   header("Location: http://".STATIC3."/static/404error.html");
так будет правильно?

Спасибо огромное Для просмотра ссылки Войди или Зарегистрируйся, еще раз!
 
вообще-то eregi заменяется на preg_match с модификатором i
Код:
eregi("&sid", $_SERVER['REQUEST_URI']) ->
preg_match("/&sid/i", $_SERVER['REQUEST_URI'])

ereg идет без модификатора.
 
Почитал ответы... решил внести разъяснения на будущее для народа...

1. ereg и eregi не рекомендованы для использования в связи их удаления в php 5.6 (может уже убрали, не проверял... пользуюсь всегда preg_mach)
2. ereg и eregi отличаются только тем, что eregi "забивает" на регистр. То есть:

PHP:
if( !eregi("[a-zA-Z0-9\_]+@[a-zA-Z0-9\-]+\.[a-z]{2,4}",$email) ) {
Будет правильно выглядеть
PHP:
if( !eregi("[a-z0-9\_]+@[a-z0-9\-]+\.[a-z]{2,4}",$email) ) {

3. Если нужно проверить на корректность емаил, то лучше пользовать это:

PHP:
      function is_email($str)
      {
          if( !preg_match('/^[a-z0-9_.-]+@([0-9a-z_-]+\.)+[a-z]{2,4}$/i', $str) ) {
              return false;
          }
       
          return true;
      }

4. Что касаемо preg_match (или preg_replace) помните, что ключи устанавливаемые в конце за разделителями (тоесть после / или #), указывают режим проверки...
/[a-z]/i - указывает на игнорирование регистра буквы... тоесть без разница A или a
/[a-z]/u - указывает, что применять UTF-8 кодировку
/[a-z]/s - говорит о том, что бы искать по всей строке

Отсюда выражение preg_mach('/[a-z]/is', $string) вернёт false если не будут найдены символы не указанные в шаблоне.

З.Ы.
Будет куда полезней поучить RegExp'ы.
Очень полезная вещь.
Может спасти в трудную минуту :)
 
Назад
Сверху