定义和用法

fnmatch – 用模式匹配文件名

目前该函数无法在 windows 或其它非 posix 兼容的系统上使用。

版本支持

php4 php5 php7
4.3.0(含)+支持 支持 支持

5.3.0 此函数开始在 windows 平台上生效。

语法

fnmatch ( string $pattern , string $string [, int $flags = 0 ] )   

fnmatch() 检查传入的 string 是否匹配给出的 shell 统配符 pattern。

参数

参数 必需的 描述
pattern shell 通配符。
string 要检查的字符串。 此函数对于文件名尤其有用,但也可以用于普通的字符串。 普通用户可能习惯于 shell 模式或者至少其中最简单的形式 ‘?’ 和 ‘*’ 通配符,因此使用 fnmatch() 来代替 preg_match() 来进行前端搜索表达式输入对于非程序员用户更加方便。
flags flage 的值可以是以下标志的任何组合,并与二进制or(|)运算符结合在一起。

  • fnm_noescape – 禁用反斜杠转义。
  • fnm_pathname – 字符串中的斜杠仅匹配给定模式中的斜杠。
  • fnm_period – 字符串中的前导期间必须与给定模式中的期间精确匹配。
  • fnm_casefold – 最小匹配。 gnu扩展的一部分。

 

返回值

匹配则返回 true,否则返回 false。

示例

if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}

相关函数

 – 寻找与模式匹配的文件路径  – 执行匹配正则表达式  – 根据指定格式解析输入的字符  – 输出格式化字符串  – 返回格式化的字符串