-1

我有一个读取目录内文件的代码。但是我正在使用ereg(),现在我在 PHP 5.3 上遇到了一个已弃用的错误。

在google上搜索后,有人说要替换ereg()perg_match().

但在替换为perg_math()我得到一个错误后:

preg_match(): 没有结束分隔符 '.' 成立

我不是 PHP 专家,我很乐意解决这个问题。

$path = THEME_DIR.'/'.$path;
foreach(array_diff(scandir($path), array('.', '..')) as $f) 
    if (is_file($path . '/' . $f) && (('.php') ? ereg('.php' . '$' , $f) : 1)) 
        $l[] = $f;
return $l; 
4

1 回答 1

2

preg_match 正则表达式应该在分隔符内.. "/your regex here/".. 已弃用的 POSIX 正则表达式是不需要任何分隔符的.. 例如 ereg(")

所以只需将您的正则表达式更改为

"/old regex/"

PHP 正则表达式:未找到结束分隔符 '^' 以 供参考

$path = THEME_DIR.'/'.$path;
foreach(array_diff(scandir($path), array('.', '..')) as $f) 
    if (is_file($path . '/' . $f) && (('.php') ? ereg('/.php' . '$/' , $f) : 1)) 
        $l[] = $f;
return $l; 
于 2013-09-16T05:27:03.680 回答