Php 根据fnmatch,什么是无效路径?
我使用Php 根据fnmatch,什么是无效路径?,php,path,posix,Php,Path,Posix,我使用fnmatch()来匹配PHP中的一些简单表达式,因为它比使用preg\u match()更高效、更简单。我正在运行超过15GB的数据,所以性能很重要。但是,对于某些字符串(我不知道是哪个字符串),我得到了警告: PHP Warning: fnmatch() expects parameter 2 to be a valid path, string given in /some/path/file.php on line xx 我知道fnmatch与路径及其运行的系统密切相关(仅在PO
fnmatch()
来匹配PHP中的一些简单表达式,因为它比使用preg\u 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系统上可用),但第二个参数的文档将其描述为:
串
测试的字符串。此函数对于以下情况特别有用:
文件名,但也可以用于常规字符串
普通用户可以使用shell模式,或者至少在他们的
最简单的形式是“?”和“*”通配符,因此使用fnmatch()而不是
用于前端搜索表达式输入的preg_match()可能要多得多
方便非编程用户
因此,PHP或文档中似乎存在一个bug。但不管怎样,如果有人知道是什么原因导致了这一警告,那将大有裨益
<> > <代码> fnMatch()>代码>是否认为是无效路径? 我建议运行一个ValuDimp()。当路径有空字节时,可能会出现此错误消息,主要是出于安全原因。如果这不起作用,请检查字符串的长度并确保它是您期望的长度,以防有其他不可见的字节。我建议运行var_dump()。当路径有空字节时,可能会出现此错误消息,主要是出于安全原因。如果这不起作用,请检查字符串的长度,并确保它是您期望的长度,以防有其他不可见的字节。问题是我无法在15GB的数据上运行var_转储。我不知道问题何时发生。除了使用输出缓冲并在调用此函数后检查其是否为空之外,无法确定是否发生了这种情况。另外,我喜欢你的个人资料图片。你是对的……我错过了“15GB”:/。如果您不知道问题发生在哪里,那么可以使用try->catch块,这样您就可以打印(或收集)导致问题的字符串。我知道这不是一个解决办法,但至少可以给你一些提示。对于配置文件图片,嗯,谢谢:问题是我不能在15GB的数据上运行var_转储。我不知道问题何时发生。除了使用输出缓冲并在调用此函数后检查其是否为空之外,无法确定是否发生了这种情况。另外,我喜欢你的个人资料图片。你是对的……我错过了“15GB”:/。如果您不知道问题发生在哪里,那么可以使用try->catch块,这样您就可以打印(或收集)导致问题的字符串。我知道这不是一个解决办法,但至少可以给你一些提示。对于个人资料图片,那么,谢谢:D