Подскажите что за ошибка Deprecated: Function eregi() is deprecated in

Тема в разделе "PHP", создана пользователем TAKOY, 27 авг 2011.

Модераторы: latteo
  1. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    78
    Симпатии:
    5
    Доброго времени суток.
    Уважаемые програмисты, в пхп я нибумбум, пару дней назад вылезла ошибка, сразу скажу, что сайт с сайтом никаких работ не вели, кроме добавления новостей, так вот, такая ошибка -
    Deprecated: Function eregi() is deprecated in /home/polyno/public_html/oshibochko.ru/modules/mod_yj_ns10/mod_yj_ns10.php on line 59

    вот сайт oshibochko.ru

    вот кусок кода из фала на который ругается ошибка) -


    59 if(eregi("MSIE 6.0", $who)) {
    60 $document->addStyleSheet(JURI::base() . 61'modules/mod_yj_ns1061 /css/ifie.php');
    62 $document->addCustomTag('

    что не так? ведь неделю назад все было в порядке, на хосте несколько сайтов на разных движках, так вот на трети сайтов повылазили разные ошибки, а на других нет ошибок, дал запрос хостингу в службу поддержки , пока молчат, хостинг 93w.ru
    Заранее спасибо.
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    В РНР5 функция eregi()считается морально устаревшей... решения 2
    1)рекомендованое... заменить другими функциями типа preg_replace()
    2) ковырнуть php.ini
    http://ibone.org.ua/php/function_eregi_deprecated.htm
    Перейти по ссылке
     
    TAKOY нравится это.
  3. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    замени кусок кода:
    PHP:
    if(eregi("MSIE 6.0"$who)) {
    на такой:
    PHP:
    if(strpos(strtolower($who), "msie 6.0") !== false) {
     
    TAKOY нравится это.
  4. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    78
    Симпатии:
    5
    Все решилось)!!!
    Значит вопервых спасибо dino, я вчера еще начал по его подсказке пробовть менять функции, но когда менял просто eregi на preg_replace то вылазила уже новая ошибка такая - Warning: preg_replace() expects at least 3 parameters, 2 given in /home/polyno/public_html/oshibochko.ru/modules/mod_yj_ns10/mod_yj_ns10.php on line 59 , и пошел я гуглить, но вчера уже надоело это все и после нескольких изменений по примерам из гугла я послал все нахер)
    Сегодня с утра сразу за ту ошибку вспомнил и опять в гугл, и оказывается все гениальное - просто! Значит опять пару изменений ни к чему не привели, но случайно нашел страничку где описывалась такая проблема Перейти по ссылке, там некий tommyangelo лаконично написал ответ, дословно так - "/chrome/" , а так как у меня в моей 59 строчке речь шла о ie6, то я попробовал тоже взять и поставь такие наклонніе и получилось так if(preg_match("/MSIE 6.0/", $who)) { -ошибка исчезла!

    Ну и зашел на нулед отписать ответ, а здесь -=Xardas=- тоже дает совет, уже готовый и попробовал и так еще сделать , и ошибка тоже исчезла, поэтому есть два решения либо меняем eregi на preg_replace и берем ie6 в наклонные, или меняем полность строчку как советует -=Xardas=-.
    Всем спасибо за внимание.

    Да еще, в футере сайта эта строчка - Использование материалов oshibochko.ru разрешается при условии ссылки (для интернет-изданий - гиперссылки на oshibochko.ru после изменений на хостинге стала отображаться в впоросительных знаках, хотя как я уже говорил никаких изменений в шаблоне не делал, я менял кодировку , убирал строчку и поновой ставил - ничего не помогает, может с этим тоже ктото поможет?
     
  5. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Проверь в какой кодировке сохранен сам файл, в котором забита данная строка (UTF8 c bom, UTF8 без bom, ANSI... )и поэкспериментируй, сохраняя файл в разных кодировках (можно делать в notepad++ или любом другом редакторе )
     
  6. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    78
    Симпатии:
    5
    А вот и техподдержка хостинга проснулась, но еслибы общими усилиями не решили проблему мою, онибы тоже не решили, ну решилибы, но временно. Вот их ответ -
    Ваши скрипты не поддерживают новую версию php 5.3.8 есть 2 решения:
    1.Вы обновляете скрипты до поддержки данной php.
    2. Мы переносим ваш счет на другой сервер где не будет меняться версия php, но вам необходимо будет изменить DNS во всех доменах.

    Что вы выбираете?

    Спасибо вам и за такое решение)))

    Да, а кодировку попробовал поставить утф8 без бом и все нормально отображается.
    Спасибо дино, спасибо нулед)))
     
  7. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    лучше stristr($who, 'msie 6.0'), чем strpos($who, 'msie 6.0'). имхо.