
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.

#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.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión