我正在使用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系统上可用),但第二个参数的文档将其描述为:
string
测试过的字符串。此功能特别有用 文件名,但也可用于常规字符串。
普通用户可能习惯于模式或至少在他们的模式中 最简单的形式''和'*'通配符所以使用fnmatch()而不是 preg_match()用于前端搜索表达式输入可能更多 方便非编程用户使用。
http://php.net/manual/en/function.fnmatch.php
因此,PHP或文档中似乎存在错误。但无论如何,如果有人知道是什么导致了这种警告,那将会有很大帮助。
fnmatch()
认为什么是无效路径?
答案 0 :(得分:0)
我建议运行一个var_dump()。当路径具有空字节时,可能会出现此错误消息,主要是出于安全原因。如果这不起作用,请检查字符串的长度,并确保它是您所期望的,以防万一有其他不可见的字节。