Prueba un nombre de fichero mediante un patrón de búsqueda

# fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

fnmatch — Prueba un nombre de fichero mediante un patrón de búsqueda

### Descripción

function fnmatch(string `$pattern`, string `$filename`, int `$flags` = 0): bool

fnmatch() verifica si la cadena `filename` cumple con el patrón de shell `pattern`.

### Parámetros

`pattern`

  El `pattern` a comparar. Habitualmente, el `pattern` contendrá caracteres genéricos como `'?'` y `'*'`.

  Caracteres genéricos a utilizar en el parámetro `pattern`
  Carácter genérico | Descripción
  --- | ---
  `?` | El signo de interrogación coincidirá con cualquier carácter único. Por ejemplo, el patrón `"file?.txt"` coincidirá con `"file1.txt"` y `"fileA.txt"`, pero no coincidirá con `"file10.txt"`.
  `*` | El asterisco coincidirá con cero o más caracteres. Por ejemplo, el patrón `"foo*.xml"` coincidirá con `"foo.xml"` y `"foobar.xml"`.
  `[ ]` | Los corchetes se utilizan para crear rangos de puntos de código ASCII o conjuntos de caracteres. Por ejemplo, el patrón `"index.php[45]"` coincidirá con `"index.php4"` y `"index.php5"`, pero no coincidirá con `"index.phpt"`. Rangos conocidos son `[0-9]`, `[a-z]` y `[A-Z]`. Varios conjuntos y rangos pueden utilizarse simultáneamente, por ejemplo `[0-9a-zABC]`.
  `!` | El signo de exclamación se utiliza para negar caracteres dentro de los corchetes. Por ejemplo, `"[!A-Z]*.html"` coincidirá con `"demo.html"`, pero no coincidirá con `"Demo.html"`.
  `\` | La barra invertida se utiliza para escapar caracteres especiales. Por ejemplo, `"Name\?"` coincidirá con `"Name?"`, pero no coincidirá con `"Names"`.

`filename`

  La cadena a probar. Esta función es particularmente útil para los nombres de fichero, pero también puede utilizarse con cadenas regulares.

  El usuario medio de Shell puede estar familiarizado con los patrones de Shell, o al menos, sus expresiones más simples, como `'?'` y `'*'`. De esta manera, utilizar fnmatch() en lugar de preg_match() para búsquedas puede ser más práctico para los no iniciados.

`flags`

  El valor de `flags` puede ser una combinación de los siguientes flags, unidos con el operador binario OR (|).

  Lista de flags posibles para fnmatch()
  `Flag` | Descripción
  --- | ---
  `FNM_NOESCAPE` | Desactiva el escape de las barras invertidas.
  `FNM_PATHNAME` | Una barra diagonal en una cadena coincide únicamente con una barra diagonal en el patrón proporcionado.
  `FNM_PERIOD` | Un punto al inicio de la cadena debe coincidir exactamente con un punto en el patrón proporcionado.
  `FNM_CASEFOLD` | Las coincidencias no distinguen mayúsculas y minúsculas. Forma parte de la extensión GNU.

### Valores devueltos

Devuelve `true` si hay resultados, `false` en caso contrario.

### Ejemplos

Ejemplo #1 Verificar el nombre de un color con un patrón de Shell

    <?php
    if (fnmatch("*gr[ae]y", $color)) {
      echo "formas de gris ...";
    }
    ?>

### Notas

Advertencia

Actualmente, esta función no está disponible para sistemas no-POSIX, a excepción de Windows.

### Ver también

- glob() - Búsqueda de rutas que coinciden con un patrón
- preg_match() - Realiza una búsqueda de coincidencia con una expresión regular estándar
- sscanf() - Analiza una cadena utilizando un formato
- printf() - Muestra una string formateada
- sprintf() - Devuelve una string formateada

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open