Validación de URL en Laravel con el método isUrl

  • Publicado el 07 febrero, 2025
  • Palabras: 43

¿Necesita validar URL en su aplicación Laravel? El método Str::isUrl proporciona una forma sencilla y flexible de comprobar si las cadenas son URL válidas.

Validación de URL en Laravel con el método isUrl

#Uso básico

El método Str::isUrl determina si la cadena dada es una URL válida:

 

use IlluminateSupportStr;

// Basic URL validation
$isUrl = Str::isUrl('http://example.com');  // true
$isUrl = Str::isUrl('laravel');             // false

// With protocol restrictions
$isUrl = Str::isUrl('http://example.com', ['http', 'https']);

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un sistema de gestión de enlaces:

 

class LinkValidator
{
    public function validateSocialLinks(array $links)
    {
        return collect($links)->filter(function ($url, $platform) {
            return match ($platform) {
                'twitter' => Str::isUrl($url, ['https']),
                'github' => Str::isUrl($url, ['https']),
                'website' => Str::isUrl($url, ['http', 'https']),
                default => Str::isUrl($url)
            };
        });
    }

    public function validateSecureUrls(array $urls)
    {
        return collect($urls)
            ->filter(fn($url) => Str::isUrl($url, ['https']))
            ->values();
    }

    public function sanitizeUserSubmittedLinks(array $links)
    {
        return array_filter($links, function ($link) {
            // Only allow http/https URLs
            if (!Str::isUrl($link, ['http', 'https'])) {
                return false;
            }

            // Additional validation logic here
            return true;
        });
    }
}

// Usage
$validator = new LinkValidator();

$socialLinks = [
    'twitter' => 'https://twitter.com/user',
    'website' => 'http://example.com',
    'invalid' => 'not-a-url'
];

$validLinks = $validator->validateSocialLinks($socialLinks);

 

El método isUrl facilita la validación de URL manteniendo el control sobre los protocolos aceptados.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Mejorar la paginación con fragmentos de URL en Laravel
127

Mejorar la paginación con fragmentos de URL en Laravel

Forzar URLs HTTPS en Laravel
430

Forzar URLs HTTPS en Laravel

Transforma una URL en Laravel con la clase Uri
535

Transforma una URL en Laravel con la clase Uri

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión