2016-06-16 6 views
0

Я в процессе миграции ужасного сайта drupal на новый сервер - сервер с более новой версией PHP. Проверка сайта я получаю следующее сообщение об ошибке:Перенос сайта: ereg для pregmatch?

Устаревшие: Функция Ерег() является устаревшим в /var/sites/n/nanohex.org/public_html/includes/file.inc на линии 902

Line 902 выглядит следующим образом:

elseif ($depth >= $min_depth && ereg($mask, $file)) { 

Мое понимание является то, что EREG больше не используется, и мне нужно заменить pregmatch.

Изменение кода следующее ...

elseif ($depth >= $min_depth && preg_match('/\.([^\.]*$)/', $mask, $file)) { 

бросает эту ошибку вместо:

Предупреждение: (базовое имя) ожидает параметр 1, чтобы быть строка, массив приведен в/вар/сайты/п/nanohex.org/public_html/входит/file.inc на линии 905

Line 905 выглядит следующим образом:

$ = Ьа базовое НУДН ($ файла);

Что я делаю неправильно?

ответ

0

Спички находятся в массиве $file. Вы должны использовать второй элемент в этом массиве:

$basename = basename($file[1]); 

Но я предполагаю, что ваш preg_match должен быть:

preg_match('/\.([^\.]*$)/', $file) 

, а затем:

$basename = basename($file); 

ОК.

preg_match doc