Conversión de caracteres especiales con el método transliterate de Laravel

  • Publicado el 21 enero, 2025
  • Palabras: 46

¿Necesitas convertir caracteres especiales a sus equivalentes ASCII? El método Str::transliterate de Laravel ofrece una solución sencilla para normalizar el contenido de texto.

Conversión de caracteres especiales con el método transliterate de Laravel

#Uso básico

El método Str::transliterate intentará convertir una cadena dada en su representación ASCII más cercana:

 

use IlluminateSupportStr;

$email = Str::transliterate('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ');
// Result: 'test@laravel.com'

 

#Ejemplo práctico

A continuación se explica cómo podrías usarlo en un servicio de normalización de texto:

 

class TextNormalizer
{
    public function normalizeUserInput(array $input)
    {
        return collect($input)->map(function ($value) {
            return is_string($value) 
                ? Str::transliterate($value)
                : $value;
        })->all();
    }

    public function sanitizeUsername(string $username)
    {
        return Str::transliterate($username);
    }

    public function cleanEmailAddress(string $email)
    {
        return strtolower(Str::transliterate($email));
    }

    public function normalizeTags(array $tags)
    {
        return array_map(function ($tag) {
            return Str::transliterate($tag);
        }, $tags);
    }
}

// Usage
class UserController extends Controller
{
    public function store(Request $request, TextNormalizer $normalizer)
    {
        $normalizedInput = $normalizer->normalizeUserInput([
            'username' => $request->username,
            'email' => $request->email,
            'tags' => $request->tags
        ]);

        // Create user with normalized data
        User::create($normalizedInput);
    }
}

 

El método de transliteración permite garantizar fácilmente un formato de texto consistente en toda la aplicación.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Eliminar caracteres duplicados en cadenas con Laravel
1580

Eliminar caracteres duplicados en cadenas con Laravel

Reemplazar patrones de cadenas en Laravel: uso de replaceMatches
420

Reemplazar patrones de cadenas en Laravel: uso de replaceMatches

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

Limpieza de cadenas con el método remove de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión