我使用fnmatch()来匹配PHP中的一些简单表达式,因为它比使用preg_match()要简单得多。我正在运行超过15‘m的数据,所以性能很重要。然而,对于一些字符串(我不知道是哪一个),我得到了警告:
PHP Warning: fnmatch() expects parameter 2 to be a valid path, string given in /some/path/file.php on line xx我知道fnmatch与路径和它运行的系统密切相关(它只能在POSIX-系统上使用),但是第二个参数的文档将其描述为:
字符串 测试过的绳子。此函数对于文件名特别有用,但也可用于常规字符串。 一般用户可以使用shell模式,或者至少以最简单的形式使用“?”而“*”通配符,因此使用fnmatch()代替preg_match()进行前端搜索表达式输入,对于非编程用户来说可能更方便。
http://php.net/manual/en/function.fnmatch.php
因此,无论是在PHP还是文档中,似乎都有一个bug。但无论如何,如果有人知道是什么引起了这一警告,这将有很大帮助。
fnmatch()认为什么是无效路径?
发布于 2016-02-19 09:13:04
我建议运行一个var_dump()。当路径具有空字节(主要是出于安全原因)时,可能会出现此错误消息。如果不起作用,检查字符串的长度,并确保它是您所期望的,以防出现其他不可见的字节。
https://stackoverflow.com/questions/35501079
复制相似问题