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

Тема в разделе "Как сделать...", создана пользователем HEPB, 15 янв 2012.

  1. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    Добрый день! ПОдскажите, пожалуйста, чем заменить функцию eregi() в следующих строках:

    Код:
            if (!eregi("[a-zA-Z0-9\_]+@[a-zA-Z0-9\-]+\.[a-z]{2,4}",$email)) {  
    и

    Код:
                if (eregi("^[".$this->sys['login_chars']."]*$",$_REQUEST['login'])) { 
    Хостер не рекомендует использование eregi()
     
  2. DemanZ

    DemanZ Постоялец

    Регистр.:
    16 мар 2007
    Сообщения:
    144
    Симпатии:
    113
    замени на preg_match (с версии PHP 5.3 функция ereg не рекомендована к использованию...)
    Код:
    if (!preg_match("/[a-zA-Z0-9\_]+@[a-zA-Z0-9\-]+\.[a-z]{2,4}/",$email)) {  
    Код:
     if (preg_match("/^[".$this->sys['login_chars']."]*$/",$_REQUEST['login'])) { 
    Как то так...
     
    HEPB нравится это.
  3. prof.seo

    prof.seo Постоялец

    Регистр.:
    25 мар 2009
    Сообщения:
    60
    Симпатии:
    20
    для мыла так еще можно
    PHP:
    if(!preg_match("/^[\w\._-]+@[\w\._-]+\.[\w]{2,6}$/",$email)) {
     
    HEPB нравится это.
  4. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.037
    Симпатии:
    702
    preg_match вместо eregi
    PHP:
    if (!preg_match("/[a-zA-Z0-9\_]+@[a-zA-Z0-9\-]+\.[a-z]{2,4}/",$email)) { 
    PHP:
     if (preg_match("/^[".$this->sys['login_chars']."]*$/",$_REQUEST['login'])) { 
     
    HEPB нравится это.
  5. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    Спасибо огромное. Проблема решена!
     
  6. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    Для емейла уже можно так:
    PHP:
     if (filter_var($emailFILTER_VALIDATE_EMAIL)){...}
     
  7. z!m3r

    z!m3r

    Регистр.:
    17 июн 2006
    Сообщения:
    241
    Симпатии:
    213
    я дико извиняюсь, что в чужой теме пишу, не хотел дублировать похожую.

    Вознкли проблемы после переноса сайта, помогите кто знает хорошо программирование.

    1 проблема при переходе по страницам выдаёт следующее:
    Код:
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 27
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 27
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 28
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 28
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 29
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 29
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 30
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 30
    
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 31
    привожу строки из файла maincore.php

    Код:
      
    строка 27:  if ((eregi("<[^>]*script*\"?[^>]*>", $check_url)) ||
    27:   (eregi("<[^>]*object*\"?[^>]*>", $check_url)) ||
    28:   (eregi("<[^>]*iframe*\"?[^>]*>", $check_url)) ||
    28:   (eregi("<[^>]*applet*\"?[^>]*>", $check_url)) ||
    29:   (eregi("<[^>]*meta*\"?[^>]*>", $check_url)) ||
    29:   (eregi("<[^>]*style*\"?[^>]*>", $check_url)) ||
    30:   (eregi("<[^>]*form*\"?[^>]*>", $check_url)) ||
    30:  (eregi("\([^>]*\"?[^)]*\)", $check_url)) ||
    31:   (eregi("\"", $check_url))) {
    пробовал заменить eregi на preg_replace, кажись еще и символы нужно менять, а знаний нет.
    спасибо
     
  8. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.037
    Симпатии:
    702
    меняй на preg_match примерно так
    Код:
    строка 27:  if ((preg_match("/<[^>]*script*\"?[^>]*>/", $check_url)) ||
    27:  (preg_match("/<[^>]*object*\"?[^>]*>/", $check_url)) ||
    28:  (preg_match("/<[^>]*iframe*\"?[^>]*>/", $check_url)) ||
    28:  (preg_match("/<[^>]*applet*\"?[^>]*>/", $check_url)) ||
    29:  (preg_match("/<[^>]*meta*\"?[^>]*>/", $check_url)) ||
    29:  (preg_match("/<[^>]*style*\"?[^>]*>/", $check_url)) ||
    30:  (preg_match("/<[^>]*form*\"?[^>]*>/", $check_url)) ||
    30:  (preg_match("/\([^>]*\"?[^)]*\)/", $check_url)) ||
    31:  (preg_match("/\"/", $check_url))) {
     
    z!m3r нравится это.
  9. z!m3r

    z!m3r

    Регистр.:
    17 июн 2006
    Сообщения:
    241
    Симпатии:
    213
    Работает, благодарю!! ))
    вылезла другая зараза правда, привожу:

    Код:
    Deprecated: Function eregi() is deprecated in /home/public_html/maincore.php on line 14
    
    строка 14: if (eregi("maincore.php", $_SERVER['PHP_SELF']))  header("Location: ".STATIC."static/404error.html");
     
  10. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.037
    Симпатии:
    702
    Код:
    строка 14: if (preg_match("/maincore\.php/", $_SERVER['PHP_SELF']))  header("Location: ".STATIC."static/404error.html");
     
    z!m3r нравится это.