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

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Eliminar caracteres duplicados en cadenas con Laravel
1657

Eliminar caracteres duplicados en cadenas con Laravel

Reemplazar patrones de cadenas en Laravel: uso de replaceMatches
446

Reemplazar patrones de cadenas en Laravel: uso de replaceMatches

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

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