Error thrown call to undefined function eregi

Бортовой журнал Полет нормальный. Без происшествий. Переход на PHP7: работа над ошибками Итак, у вас есть старенький, но уж очень милый сердцу сайт, который вы решаетесь из жалости (или, возможно, перечитав Хабра) перевести на PHP7. С волнением ожидая резкого роста производительности, вы смахиваете пыль с бедного сайта и решительно переключаете в панели управления хостингом […]

Содержание

  1. Бортовой журнал
  2. Полет нормальный. Без происшествий.
  3. Переход на PHP7: работа над ошибками
  4. SOLVED Call to undefined function eregi
  5. canou83
  6. sparek-3
  7. Drupal Русскоязычное сообщество
  8. Главные вкладки
  9. Комментарии

Бортовой журнал

Полет нормальный. Без происшествий.

Переход на PHP7: работа над ошибками

Итак, у вас есть старенький, но уж очень милый сердцу сайт, который вы решаетесь из жалости (или, возможно, перечитав Хабра) перевести на PHP7. С волнением ожидая резкого роста производительности, вы смахиваете пыль с бедного сайта и решительно переключаете в панели управления хостингом версию PHP.

Если сайт уже давно не молод, то с большой долей вероятности чудо не произойдет. В лучшем случае начнут появляться разного рода ошибки, а в худшем — вы увидите белый экран, дзен веб-разработки. В этот момент хочется по-быстрому переключить все обратно и забыть о своей внезапной слабости.

Но предположим, что ваша сильная сторона — настойчивость, к тому же вы располагаете некоторым количеством времени для экспериментов. Давайте попробуем все починить.

Резервные копии

Делаем резервные копии сайта (а заодно и баз данных). Ведь кто не делает резервные копи — сам себе враг, верно? Для разного рода экспериментов имеет смысл добавить еще один сайт на хостинге и скопировать в него файлы, которые мы сейчас будем править.

Журналы ошибок

Настроим ведение журнала ошибок PHP в файл .htaccess (если он не был настроен ранее):

php_value display_errors 0
php_value log_errors 1
php_value error_log /home/vasya/domains/mysite.ru/logs/error.log

Работа с MySQL

Допустим, сайт использует базы данных, и вы видите ошибки вроде такой:

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

Это оттого, что в современных версиях PHP (начиная с PHP 5.5.0) оригинальное расширение MySQL не поддерживается. Разработчики рекомендуют использовать MySQLi или PDO. Попробуем перейти на MySQLi, это просто:

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

$link = mysql_connect(‘localhost’, $user, $password)
mysql_select_db($dbname, $link)
mysql_query(‘set names cp1251’)

можно заменить на:

$link = mysqli_connect(‘localhost’, $user, $password, $dbname)
mysqli_query($link, ‘set names cp1251’)

Другие популярные функции легко меняются на их аналоги с буквой ‘i’:

mysqli_fetch_array()
mysqli_fetch_row()
mysqli_fetch_assoc()
mysqli_fetch_array()
mysqli_num_rows()
mysqli_insert_id()
mysqli_close()

В результате этих несложных действий данные из БД должны успешно собираться и отправляться.

Кодировка

Настоящий олдскул — это сайт в CP1251 (как минимум). Всё превратилось в ромбики или прочие козяблики?

Скорее всего, достаточно будет указать кодировку в .htaccess таким образом:

php_value default_charset «cp1251»

Регулярные выражения

Также вы можете наблюдать ошибки следующего рода:

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead

Это означает, что модификатор /e, который позволял передать произвольной функции результат регулярного выражения, теперь не поддерживается. В таких случаях рекомендуется использовать функцию preg_replace_callback

Допустим, у нас есть такое регулярное выражение:

с заменой на preg_replace_callback оно должно выглядеть вот так:

$string=preg_replace_callback(«/:([a-z]<1,10>):/», create_function(‘$matches’, ‘return print_smile($matches[1])’), $string)

здесь все просто, регулярное выражение теперь указывается в качестве первого аргумента (без модификатора /e, разумеется), а в качестве второго аргумента указывается анонимная функция (которая будет выполнена после применения регулярного выражения) с двумя аргументами: массив $matches, где будут сохранены данные, совпадающие с регулярным выражением и вызов внешней функции с аргументами. В данном примере внешняя функция называется print_smile и ей передается аргументом первое найденное вхождение. То, что в preg_replace было \1 (первое найденное вхождение) станет $matches[1] (если аргументов было больше, то будет $matches[2], $matches[3] и так далее).

Вот еще один пример, посложнее:

$out=preg_replace_callback(‘/ (.*?) /s’, create_function(‘$matches’, ‘return feed_out_sub_rm($matches[2], «‘.$base_prefix.’», «‘.$nick.’», «‘.$id_entry.’») ‘), $out)

здесь легко запутаться в кавычках, будьте внимательны.

Копаясь в регулярных выражениях, можно вспомнить еще про две функции, которые с версии PHP 5.3.0 считаются устаревшими (и не поддерживаются). Симптомы следующие:

Fatal error: Uncaught Error: Call to undefined function ereg_replace()

Если регулярное выражение в ereg_replace простое, то можно обойтись просто установкой граничных символов, как здесь:

Fatal error: Uncaught Error: Call to undefined function split()

Если регулярное выражение посложнее, то пробуем преобразовать к preg_split.

На этом пока все. Удачной отладки.
Много полезных материалов по теме можно найти на сайте разработчиков.

Если что-то не получается, или ваш случай совсем не похож на наши примеры — пишите комментарии, попробуем разобраться вместе.

Для того, чтобы оставлять комментарии к посту, авторизуйтесь, используя свой аккаунт в социальных сетях ВКонтакте/FaceBook, или аккаунт в Google/Яндекс.

Источник

SOLVED Call to undefined function eregi

canou83

Well-Known Member

Hello, I have a site that runs and must launch a CRON task all X periods.
This task imports orders into a commercial administration software.

This one is in PHP 5.6 php-fpm on easyapache4

The import of the commands in manual works, but in automatic, task CRON I have this error:

Fatal error: Uncaught Error: Call to undefined function eregi() in /home/xxxxx/public_html/scripts/ecommerce/ws_import.php:32
Stack trace:
#0


thrown in /home/xxxxx/public_html/scripts/ecommerce/ws_import.php on line 32
Import end dim. mars 18 10:50:02 CET 2018

Line 32 of this file is:

Well-Known Member

The ereg(i) function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0.

You probably should upgrade or rewrite the script to one that uses preg_match instead of eregi

An alternative is to ask your webhost to install a PHP 5.2 version if it is not already available to you, and switch to that.

If your orders > import > administration software principally run on a PHP version higher than 5.2, you will be better using the highest recommended PHP version for the orders and admin software, and re-writing the importation routines to be compatible.

This is not really a cPanel issue, and you will probably get better help from forums like eg Stack Overflow

sparek-3

Well-Known Member

Is this a piece of software that you wrote or that you obtained from some where else (free, commercially licensed, etc)?

If it’s something you obtained from some where else, then the script is outdated or abandoned. You need to update the script to the latest version since this version of the script is obviously not written for modern PHP versions and likely has many other security holes that malicious users may be able to abuse. If you are using the latest version, then the script is likely abandoned by it’s developer because eregi() has been deprecated for some time. Any developer worth their weight would have resolved this years ago.

Источник

Drupal Русскоязычное сообщество

Главные вкладки

При переезде проекта на Drepal 6 на новый сервер с php7 получил сообщение
Notice: Trying to get property of non-object in /srv/http/includes/path.inc on line 50
в этой строке вижу код
= $path_language ? $path_language : $language -> language ; ?>
Подскажите, как это вылечить?

  • Есть вопрос
  • Решение проблем
  • Блог
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

Комментарии

заводить шестёрку на php 7 — это большое колдунство

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

LTS вроде поддерживает php7, но там маловато контрибных модулей.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

А без ubercart ? А проблема с views решена?

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Убер- только модули адаптированы , можно выбросить — но не суть, views пофиксин

P.S. Это рабочий адопт используется на сайтах.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Спасибо, буду пробовать!

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Учти — это update, если сайта нет — сначала поставь коробку а потом обнови файлы из сборки.
Если будут вопросы для оперативной связи пиши скайп / летегу.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

В update нет модуля filter, выдает ошибку на split() в filter.module строка 914, заменил на explode

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Как раз то, что нужно, сайт есть, но переехал на хостинг где php7

Fatal error: Uncaught Error: Call to undefined function ereg() in /includes/file.inc:973
Заменил на preg_match

Fatal error: Uncaught Error: Call to undefined function split() in /modules/filter/filter.module:914

Сейчас выдает
Notice: unserialize(): Error at offset 499 of 986 bytes in /srv/http/includes/bootstrap.inc on line 817

Notice: unserialize(): Error at offset 143 of 291 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 135 of 267 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 125 of 224 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 42 of 83 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 20 of 37 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 315 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 550 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 550 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 550 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 315 bytes in /srv/http/includes/bootstrap.inc on line 559
.

Warning: Cannot modify header information — headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 734

Warning: Cannot modify header information — headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 735

Warning: Cannot modify header information — headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 736

Warning: Cannot modify header information — headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 737

Notice: Trying to get property of non-object in /srv/http/includes/path.inc on line 63

У Вас свой sites/default/settings из аповского надо добавить

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Во как, красиво! Попробую!

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Внес изменения в sites/default/settings
Но Notice: unserialize(): Error at offset. остались

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Определенная версия ПО (Программное Обеспечение)(в данном случае Drupal 6) разрабатывается и тестируется на определенном окружении (php, mysql и т.п.)
Разработчики могут гарантировать более-менее стабильную работу ПО только в том окружении, в котором это ПО тестировалось и показало удовлетворительные результаты тестирования.

Если вы решили использовать ПО не в том окружении для которого разрабатывалось данное ПО с использованием костылей, могу дать несколько советов:
1.Начинайте регулярно употреблять седативные средства (валокордин и прочие фенобарбиталы). Ибо когда в самый неожиданный момент и с самыми неожиданными последствиями все начнет работать не так как ожидалось, вам понадобится как минимум «холодная голова», как максимум чтобы не пришлось задействовать саппорт «Скорая медицинская помощь» для восстановления жизненных функций собственного организма.
2.Учредите статью расходов для восстановление работоспособности сайта при сбоях из-за костылезации его эксплуатации, и начинайте накапливать на ней ден.средства.
3.Застрахуйте бизнес и начинайте выплачивать страховые взносы.
4.На всякий пожарный, вывезите родных и близких в безопасное место.

возьмите нормальный облачный сервер, обеспечьте на нем необходимое для сайта окружение и забудьте про первую часть этого комментария.
Сейчас облачные выделенные сервера стоят копейки.

Проверяю таблицу variable на ошибки, выводит пустые строки

foreach($result as $variable)<

if ($variables[$variable->name] === FALSE) <
print $variable->name . ‘=’ . $variable->value . ‘***
‘;

Хотя нет, не пустые
admin_theme=s:7:»garland»;
.
boost_cache_css=i:1;

а как это вылечить?

Сайт заработал?
Почему @unserialize а не unserialize?
Почему name д.б. FALSE ?
Подключение к базе типа, прошло? $db_url = ‘mysqli://username:password@localhost/databasename’;
mysqli

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Критические ошибки исчезли, но остались
Notice: unserialize(): Error at offset 143 of 291 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 135 of 267 bytes in /srv/http/includes/bootstrap.inc on line 559
.
Можно авторизоваться, можно зайти в админку.

Подключение mysqli прошло без проблем

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Ага что-то индивидуальное, ясно.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Честно говоря не понимаю почему у меня возникает Notice: unserialize(): Error at offset 143 of 291 bytes
Сравнил значения в таблицах variable на старох хостинге и на новом, все идентично. Кодировки таблиц тоже.

Источник

0 Пользователей и 1 Гость просматривают эту тему.

  • 11 Ответов
  • 4387 Просмотров

Доброго дня. В админке, после удаления компонента K2, при сохранении материала выдает: Обнаружена ошибка.  0 Call to undefined function ereg() .
При этом материал сохраняется. При сохранении категорий такой ошибки нет, только материалов. Если зайти в менеджер материалов, то статья будет отмечена замочком. Сей факт вызывает не удобство, так как не понятно чего ожидать в дальнейшем. После обновления движка, ошибка сохраняется.
Помоги разобраться и по возможности исправить. За ранее спасибо.

Какое-то дремучее расширение, которое у Вас установлено, использует дремучую функцию ereg — эта функция была удалена из PHP7. Здесь три решения: 1 — обновить данное расширение, 2 — заменить функцию ereg на preg_match, 3 — откатиться до PHP5.

Какое-то дремучее расширение, которое у Вас установлено, использует дремучую функцию ereg — эта функция была удалена из PHP7. Здесь три решения: 1 — обновить данное расширение, 2 — заменить функцию ereg на preg_match, 3 — откатиться до PHP5.

Спасибо за отклик.
Если рассмотреть 1 решение, то мне нужно по новой установить K2?  И потом опять его снести?
3 решение не хочется, так как действительно стоит  PHP7
2 решение -без вашей помощи не смогу поправить, если это будет более правильный вариант, то пожалуйста подскажите где заменить.  Еще раз спасибо. 

Вы корректно удалили К2?
Таблицы посмотрите в БД-остались или нет?!
И шаблон не привязан к К2? Может там переопределение было или правка шаблона под компонент?

Записан

Миграция, установка, обновление версий Joomla  |  Создание сайтов «под ключ»  |  Эксклюзивные заглушки «offline»  |  Работа с «напильником» над шаблонами и расширениями

Вы корректно удалили К2?
Таблицы посмотрите в БД-остались или нет?!
И шаблон не привязан к К2? Может там переопределение было или правка шаблона под компонент?

Удаляла через менеджер расширений. Таблицы были, сейчас удалила, ситуация та же. Шаблон protostar, шаблон не правила.

У вас с «0» Joomla или вы какой-то квик правите?

Записан

Миграция, установка, обновление версий Joomla  |  Создание сайтов «под ключ»  |  Эксклюзивные заглушки «offline»  |  Работа с «напильником» над шаблонами и расширениями

У вас с «0» Joomla или вы какой-то квик правите?

Да с нуля. Косяк произошел когда решила избавиться от K2. Удалила сначала статьи, потом категории, потом расширение. Возможно не досмотрела что то, или поломала  :o

Удалите значит сайт, установите с «0» Joomla.
Если уже много статей-БД просто импортируйте.
Ошибки точно не будет.

Если К2 нужен-установите последнюю версию.

Записан

Миграция, установка, обновление версий Joomla  |  Создание сайтов «под ключ»  |  Эксклюзивные заглушки «offline»  |  Работа с «напильником» над шаблонами и расширениями

В админке, после удаления компонента K2, при сохранении материала выдает: Обнаружена ошибка.  0 Call to undefined function ereg() .

ну помимо компонента там наверно есть еще плагины, которые тоже наверно надо удалить

ну помимо компонента там наверно есть еще плагины, которые тоже наверно надо удалить

Проверила, плагинов, модулей нет. В базе тоже вроде чисто.

Удалите значит сайт, установите с «0» Joomla.
Если уже много статей-БД просто импортируйте.
Ошибки точно не будет.

Если К2 нужен-установите последнюю версию.

если решения не будет, придется сносить.  K2 -точно не нужен. 

Зайдите в терминал (SSH), перейдите в директорию сайта и найдите в ней все файлы, содержащие строку ereg, набрав команду:

grep -rwl «ereg»

Покажите, что получилось.

Зайдите в терминал (SSH), перейдите в директорию сайта и найдите в ней все файлы, содержащие строку ereg, набрав команду:

grep -rwl «ereg»

Покажите, что получилось.

Спасибо всем, решение принимаю в пользу снести всё к бабушке.

« Последнее редактирование: 03.05.2017, 15:27:06 от Элана »

Записан

На чтение 6 мин. Просмотров 34 Опубликовано 15.12.2019

Тут мы заменили функцию preg_replace(), на preg_replace_callback(), удалили модификатор e в первом аргументе, которым является регулярное выражение. Второй аргумент заменили анонимной функцией, которая будет выполнятся после применения регулярного выражения. Анонимная функция содержит массив $match , элементы массива заменяют совпадения, например, было: $1 , стало: $match[1] ; было: $2 , стало: $match[2] , и так далее. Убрали кавычки и символ экранирования (обратный слеш ).

В завершении об ошибки несуществующего модификатора e , покажу ещё пару примеров замены кода. Строку:

Устаревшая функция ereg_replace()
Как сообщил официальный сайт PHP: http://php.net/:

То есть: ereg_replace заменили на: preg_replace, в начало и конец регулярного выражения добавили слеши.
Тоже самое и с функцией ereg.

Замена MYSQL_* на MYSQLI_*
Функции mysql_* уже давно были объявлены устаревшими, а в PHP 7 они удалены, есть mysqli_*, вот на эти функции и будем менять.
И так, например, сейчас у нас такой код:

Содержание

  1. Полет нормальный. Без происшествий.
  2. Переход на PHP7: работа над ошибками
  3. 2 Answers 2
  4. Linked
  5. Related
  6. Hot Network Questions

Полет нормальный. Без происшествий.

Переход на PHP7: работа над ошибками

Итак, у вас есть старенький, но уж очень милый сердцу сайт, который вы решаетесь из жалости (или, возможно, перечитав Хабра) перевести на PHP7. С волнением ожидая резкого роста производительности, вы смахиваете пыль с бедного сайта и решительно переключаете в панели управления хостингом версию PHP.

Если сайт уже давно не молод, то с большой долей вероятности чудо не произойдет. В лучшем случае начнут появляться разного рода ошибки, а в худшем — вы увидите белый экран, дзен веб-разработки. В этот момент хочется по-быстрому переключить все обратно и забыть о своей внезапной слабости.

Но предположим, что ваша сильная сторона — настойчивость, к тому же вы располагаете некоторым количеством времени для экспериментов. Давайте попробуем все починить.

Резервные копии

Делаем резервные копии сайта (а заодно и баз данных). Ведь кто не делает резервные копи — сам себе враг, верно? Для разного рода экспериментов имеет смысл добавить еще один сайт на хостинге и скопировать в него файлы, которые мы сейчас будем править.

Журналы ошибок

Настроим ведение журнала ошибок PHP в файл .htaccess (если он не был настроен ранее):

php_value display_errors 0
php_value log_errors 1
php_value error_log /home/vasya/domains/mysite.ru/logs/error.log

Работа с MySQL

Допустим, сайт использует базы данных, и вы видите ошибки вроде такой:

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

Это оттого, что в современных версиях PHP (начиная с PHP 5.5.0) оригинальное расширение MySQL не поддерживается. Разработчики рекомендуют использовать MySQLi или PDO. Попробуем перейти на MySQLi, это просто:

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

$link = mysql_connect(‘localhost’, $user, $password)
mysql_select_db($dbname, $link)
mysql_query(‘set names cp1251’)

можно заменить на:

$link = mysqli_connect(‘localhost’, $user, $password, $dbname)
mysqli_query($link, ‘set names cp1251’)

Другие популярные функции легко меняются на их аналоги с буквой ‘i’:

mysqli_fetch_array()
mysqli_fetch_row()
mysqli_fetch_assoc()
mysqli_fetch_array()
mysqli_num_rows()
mysqli_insert_id()
mysqli_close()

В результате этих несложных действий данные из БД должны успешно собираться и отправляться.

Кодировка

Настоящий олдскул — это сайт в CP1251 (как минимум). Всё превратилось в ромбики или прочие козяблики?

Скорее всего, достаточно будет указать кодировку в .htaccess таким образом:

php_value default_charset «cp1251»

Регулярные выражения

Также вы можете наблюдать ошибки следующего рода:

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead

Это означает, что модификатор /e, который позволял передать произвольной функции результат регулярного выражения, теперь не поддерживается. В таких случаях рекомендуется использовать функцию preg_replace_callback

Допустим, у нас есть такое регулярное выражение:

с заменой на preg_replace_callback оно должно выглядеть вот так:

$string=preg_replace_callback(«/:([a-z]<1,10>):/», create_function(‘$matches’, ‘return print_smile($matches[1])’), $string)

здесь все просто, регулярное выражение теперь указывается в качестве первого аргумента (без модификатора /e, разумеется), а в качестве второго аргумента указывается анонимная функция (которая будет выполнена после применения регулярного выражения) с двумя аргументами: массив $matches, где будут сохранены данные, совпадающие с регулярным выражением и вызов внешней функции с аргументами. В данном примере внешняя функция называется print_smile и ей передается аргументом первое найденное вхождение. То, что в preg_replace было 1 (первое найденное вхождение) станет $matches[1] (если аргументов было больше, то будет $matches[2], $matches[3] и так далее).

Вот еще один пример, посложнее:

$out=preg_replace_callback(‘/ (.*?) /s’, create_function(‘$matches’, ‘return feed_out_sub_rm($matches[2], «‘.$base_prefix.’», «‘.$nick.’», «‘.$id_entry.’») ‘), $out)

здесь легко запутаться в кавычках, будьте внимательны.

Копаясь в регулярных выражениях, можно вспомнить еще про две функции, которые с версии PHP 5.3.0 считаются устаревшими (и не поддерживаются). Симптомы следующие:

Fatal error: Uncaught Error: Call to undefined function ereg_replace()

Если регулярное выражение в ereg_replace простое, то можно обойтись просто установкой граничных символов, как здесь:

Fatal error: Uncaught Error: Call to undefined function split()

Если регулярное выражение посложнее, то пробуем преобразовать к preg_split.

На этом пока все. Удачной отладки.
Много полезных материалов по теме можно найти на сайте разработчиков.

Если что-то не получается, или ваш случай совсем не похож на наши примеры — пишите комментарии, попробуем разобраться вместе.

Для того, чтобы оставлять комментарии к посту, авторизуйтесь, используя свой аккаунт в социальных сетях ВКонтакте/FaceBook, или аккаунт в Google/Яндекс.

below code is giving me the fatal error in php 7

is there any way to make it compatible with php 7?

2 Answers 2

Switch to preg_replace Docs and update the expression to use preg syntax (PCRE) instead of ereg syntax (POSIX) where there are differences Docs (just as it says to do in the manual for ereg_replace Docs ).

Your above code should be this way:

ereg_replace function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0. So you must have to use preg_replace() function instead of ereg_replace()

Linked

Hot Network Questions

site design / logo © 2019 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2019.11.15.35459

Понравилась статья? Поделить с друзьями:
  • Error thread is not a member of std
  • Error this was not captured for this lambda function
  • Error this value is not valid
  • Error this utility must be installed on bios disk 0
  • Error this username is already registered please choose another one