Cómo eliminar todos los caracteres no alfanuméricos de una cadena en PHP?
¡Hola a todos! Soy nuevo en PHP y me encontré con este problema: necesito limpiar una cadena de todo excepto letras (latín y cirílico) y dígitos. Probé con str_replace y quedó terriblemente voluminoso, tuve que enumerar cada carácter. Esto es lo que intenté hacer:
```php
$text = "Привет, мир! Как дела? 123.";
$clean = str_replace(array(',', '!', '?', '.', ' '), '', $text);
echo $clean; // ПриветмирКакдела123
```
Pero esto no es serio: enumerar todos los signos de puntuación posibles, espacios y otra basura manualmente. ¿Y si hay paréntesis, barras o caracteres especiales como @#$%? Además, el usuario puede ingresar cualquier cosa.
He oído que se pueden usar expresiones regulares con preg_replace, pero no entiendo qué patrón establecer. Necesito que solo queden:
- Letras del alfabeto latino (a-z, A-Z)
- Letras del alfabeto cirílico (а-я, А-Я)
- Dígitos (0-9)
Todo lo demás (espacios, signos de puntuación, caracteres especiales, emojis) debe ser eliminado. ¿Pueden decirme cómo hacerlo correctamente? Preferiblemente con una explicación.