Utilidades de Coincidencia de Archivos y Patrones al Estilo Glob para PHP

El paquete Splat] es una utilidad PHP creada por Chris Kankiewicz que proporciona coincidencias de archivos y patrones al estilo glob.

Con esta utilidad, puedes convertir patrones en expresiones regulares usando la instancia de Pattern proporcionada:

Ejemplo de Uso

// Devuelve '#^foo$#'
Pattern::make('foo')->toRegex();

// Devuelve '#^foo/bar.txt$#'
Pattern::make('foo/bar.txt')->toRegex();

// Devuelve '#^file.(yml|yaml)$#'
Pattern::make('file.{yml,yaml}')->toRegex();

// Puedes controlar los anclajes de línea también

// Devuelve '#foo#'
Pattern::make('foo')->toRegex(Glob::NO_ANCHORS);
// Devuelve '#^foo#'
Pattern::make('foo')->toRegex(Glob::START_ANCHOR);
// Devuelve '#^foo$#'
Pattern::make('foo')->toRegex(Glob::BOTH_ANCHORS);

Funciones de Glob de Archivos

Este paquete también incluye utilidades de glob para obtener una lista de archivos que coinciden con un patrón de archivo glob.

// Obtiene una lista de archivos en un directorio (devuelve un componente Finder de Symfony)
Glob::in('**.txt', 'some/file/path');

Glob::matchStart('foo/*', 'foo/bar.txt'); // true
Glob::matchStart('foo/*', 'bar/foo.txt'); // false
Glob::matchEnd('**.txt', 'foo/bar.txt'); // true
Glob::matchEnd('**.txt', 'foo/bar.log'); // false

Filtrar y Rechazar Nombres de Archivos

// Devuelve ['foo.txt', 'foo/bar.txt']
Glob::filter('**.txt', [
    'foo', 'foo.txt', 'bar.zip', 'foo/bar.png', 'foo/bar.txt',
]);

// Devuelve ['foo', 'bar.zip', 'foo/bar.png']
Glob::reject('**.txt', [
    'foo', 'foo.txt', 'bar.zip', 'foo/bar.png', 'foo/bar.txt',
]);

Más Información

Puedes aprender más sobre este paquete, obtener instrucciones completas de instalación y ver el código fuente en GitHub.


Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario