Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据fnmatch,什么是无效路径?_Php_Path_Posix - Fatal编程技术网

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