根据fnmatch,什么是无效路径?

时间:2016-02-19 08:53:51

标签: php path posix

我正在使用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()认为什么是无效路径?

1 个答案:

答案 0 :(得分:0)

我建议运行一个var_dump()。当路径具有空字节时,可能会出现此错误消息,主要是出于安全原因。如果这不起作用,请检查字符串的长度,并确保它是您所期望的,以防万一有其他不可见的字节。