Reemplaza los prefijos de strings con el método replaceStart de Laravel

  • Publicado el 31 enero, 2025
  • Palabras: 56

¿Necesita reemplazar texto al comienzo de un string? El método Str::replaceStart de Laravel ofrece una forma precisa de modificar cadenas solo cuando comienzan con un contenido específico.

Reemplaza los prefijos de strings con el método replaceStart de Laravel

#Uso básico

El método Str::replaceStart reemplaza la primera aparición del valor dado solo si el valor aparece al comienzo de la cadena:

 

use IlluminateSupportStr;

// Successful replacement
$replaced = Str::replaceStart('Hello', 'Laravel', 'Hello World');
// Result: 'Laravel World'

// No replacement (doesn't start with 'World')
$replaced = Str::replaceStart('World', 'Laravel', 'Hello World');
// Result: 'Hello World'

 

#Ejemplo práctico

A continuación te indicamos cómo puedes usarlo en un formateador de URL:

 

class UrlFormatter
{
    public function normalizeProtocol(string $url, string $protocol = 'https')
    {
        // Replace http:// with https://
        $url = Str::replaceStart('http://', $protocol . '://', $url);
        
        // Add protocol if missing
        if (!str_starts_with($url, $protocol . '://')) {
            $url = $protocol . '://' . $url;
        }
        
        return $url;
    }

    public function standardizeDomain(string $url, string $mainDomain)
    {
        // Replace www with main domain
        $url = Str::replaceStart('www.', $mainDomain . '.', $url);
        
        // Replace dev with main domain
        $url = Str::replaceStart('dev.', $mainDomain . '.', $url);
        
        return $url;
    }

    public function cleanupApiEndpoint(string $endpoint)
    {
        // Remove leading /api if present
        return Str::replaceStart('/api', '', $endpoint);
    }
}

// Usage
$formatter = new UrlFormatter();

echo $formatter->normalizeProtocol('http://example.com');
// Output: 'https://example.com'

echo $formatter->standardizeDomain('www.example.com', 'app');
// Output: 'app.example.com'

echo $formatter->cleanupApiEndpoint('/api/users');
// Output: '/users'

 

El método replaceStart proporciona un control preciso sobre las modificaciones de cadenas cuando necesita orientar el contenido al comienzo de una cadena.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Cómo potenciar el manejo de entradas de strings en Laravel con Stringable
111

Cómo potenciar el manejo de entradas de strings en Laravel con Stringable

Simplifica las comprobaciones de strings en Laravel con doesntContain
96

Simplifica las comprobaciones de strings en Laravel con doesntContain

Limpieza de cadenas con el método remove de Laravel
685

Limpieza de cadenas con el método remove de Laravel

Repetición de cadenas en Laravel con el método repeat
472

Repetición de cadenas en Laravel con el método repeat

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión