fnmatch()

1. 定义

该函数对比给定的文件名或字符串是否符合特定的模式,符合模式则返回TRUE,失败则返回FALSE。

注:该函数在Windows或其他非POSIX兼容的系统中使用。

2. 语法

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

3. 参数说明

参数 可选性 数据类型 描述
$pattern 必需 字符串 匹配模式
$string 必需 字符串 要匹配的文件路径或字符串
$flags 可选 整型 可选值

其中$flags的值可以是以下值的几种:

  • FNM_NOESCAPE:禁用反斜杠转义
  • FNM_PATHNAME$string中的斜杠仅与给定$pattern中的斜杠匹配
  • FNM_PERIOD$string中的前导句点必须与给定$pattern中的句点完全匹配
  • FNM_CASEFOLD:GNU扩展的一部分。

4. 示例

<?php

// fnmatch()
// 对比给定的文件名或字符串是否符合特定的模式

$str = 'grayyyyyy';
$res = fnmatch('g[ar]*', $str);// 匹配以字母 g 开头,其后跟字母 a 或者 r 的字符串
var_dump($res);// 输出:bool(true)

$res = fnmatch('*[ar]', $str);// 匹配以字母 a 或者 r 结尾的字符串
var_dump($res);// 输出:bool(false)

5. 延展阅读

  • glob():匹配所有符合模式的文件路径,不进行缩写扩展或参数替代
  • sscanf():根据指定格式解析字符串
  • printf():将字符串按某种特定格式输出
  • sprintf():返回被格式化后的字符串