【发布时间】:2016-02-19 08:53:51
【问题描述】:
我使用fnmatch() 来匹配PHP 中的一些简单表达式,因为它比使用preg_match() 更高效、更简单。我正在运行超过 15GB 的数据,因此性能很重要。但是,对于某些字符串(我不知道是哪个),我会收到警告:
PHP Warning: fnmatch() expects parameter 2 to be a valid path, string given in /some/path/file.php on line xx
我了解fnmatch 与路径及其运行的系统密切相关(仅在 POSIX 系统上可用),但第二个参数的文档将其描述为:
字符串
被测试的字符串。这个功能对于 文件名,但也可以用于常规字符串。
普通用户可能习惯于壳模式或至少在他们的 '?' 的最简单形式和 '*' 通配符,所以使用 fnmatch() 而不是 preg_match() 用于前端搜索表达式输入可能更多 方便非编程用户。
http://php.net/manual/en/function.fnmatch.php
因此,PHP 或文档中似乎存在错误。但不管怎样,如果有人知道是什么导致了这个警告,那将有很大帮助。
fnmatch() 认为什么是无效路径?
【问题讨论】: