Я нахожусь в процессе миграции ужасного сайта drupal на новый сервер — сервер с более новой версией PHP. При проверке сайта я получаю следующую ошибку:
Устаревший: функция ereg () устарела в /var/sites/n/nanohex.org/public_html/includes/file.inc в строке 902.
Строка 902 выглядит следующим образом:
elseif ($depth >= $min_depth && ereg($mask, $file)) {
Насколько я понимаю, ereg больше не используется, и мне нужно заменить на pregmatch.
Меняем код следующим образом …
elseif ($depth >= $min_depth && preg_match('/\.([^\.]*$)/', $mask, $file)) {
выдает эту ошибку вместо:
Предупреждение: basename () ожидает, что параметр 1 будет строкой, массив указан в /var/sites/n/nanohex.org/public_html/includes/file.inc в строке 905
Строка 905 выглядит так:
$ basename = basename ($ file);
Что я делаю неправильно?
Совпадения в массиве $file
, Вы должны использовать вторую запись в этом массиве:
$basename = basename($file[1]);
Но я думаю, ваш preg_match должен быть:
preg_match('/\.([^\.]*$)/', $file)
а потом:
$basename = basename($file);
все в порядке.
Других решений пока нет …