迁移网站:ereg到pregmatch?

时间:2016-06-16 12:55:33

标签: php preg-match ereg

我正在将一个可怕的drupal站点迁移到一个新服务器 - 一个带有较新版本PHP的服务器。检查网站我收到以下错误:

不推荐使用:第902行/var/sites/n/nanohex.org/public_html/includes/file.inc中弃用了函数ereg()

第902行如下所示:

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

我的理解是不再使用ereg,我需要用pregmatch替换。

更改以下代码......

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

反而引发了这个错误:

警告:basename()要求参数1为字符串,在第905行的/var/sites/n/nanohex.org/public_html/includes/file.inc中给出数组

第905行看起来像这样:

$ basename = basename($ file);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

匹配项位于数组$file中。您必须使用此数组中的第二个条目:

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

但我想你的preg_match应该是:

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

然后:

$basename = basename($file);

没问题。

preg_match doc