迁移站点:ereg 到 preg_match?

Migrating a site: ereg to pregmatch?

我正在将一个糟糕的 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 为字符串,第 905 行 [=12= 中 /var/sites/n/nanohex.org/public_html/includes/file.inc 中给出的数组]

第 905 行如下所示:

$basename = basename($file);

我做错了什么?

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

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

但我猜你的 preg_match 应该是:

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

然后:

$basename = basename($file);

可以。

preg_match doc