preg_match():没有结束分隔符'。'

时间:2015-01-05 00:21:00

标签: php preg-match

我已经阅读了有关添加分隔符的其他回复,但是错误消息调用的行没有'。'在它。

这是错误消息:

Warning: preg_match(): No ending delimiter '.' found in /homepages/17/d257823593/htdocs/includes/file.inc on line 895.

这是代码(第一行是第895行):

elseif ($depth >= $min_depth && preg_match($mask, $file)) {
          // Always use this match over anything already set in $files with the same $$key.
          $filename = "$dir/$file";
          $basename = basename($file);
          $name = substr($basename, 0, strrpos($basename, '.'));

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

正则表达式的第一个字符是指定的分隔符,必须在末尾用另一个字符补充(*)(**)

在您的情况下,您的$mask变量似乎以.开头,例如.something$;你应该使用一个合适的分隔符,例如默认的分隔符:

/.something$/
表达式修饰符之前的

(*) (**)结尾分隔符不一定是相同的字符

Reproduction of your error:

$str = 'Hello test world!';
$mask = '.*';

echo preg_match($mask, $str); // Warning: preg_match(): No ending delimiter '.' found in /tmp/execpad-2054fb2e6491/source-2054fb2e6491 on line 6

Using delimiters:

$str = 'Hello test world!';
$mask = '~.*~';

echo preg_match($mask, $str); // 1