Como remover todos os caracteres não alfanuméricos de uma string em PHP?
Olá a todos! Sou novo em PHP e me deparei com o seguinte problema: preciso limpar uma string de tudo, exceto letras (latim e cirílico) e dígitos. Tentei usar str_replace — ficou terrivelmente complicado, tive que listar cada caractere. Aqui está o que tentei fazer:
```php
$text = "Привет, мир! Как дела? 123.";
$clean = str_replace(array(',', '!', '?', '.', ' '), '', $text);
echo $clean; // ПриветмирКакдела123
```
Mas isso não é sério — listar todos os possíveis sinais de pontuação, espaços e outros lixos manualmente. E se houver parênteses, barras ou caracteres especiais como @#$%? Além disso, o usuário pode inserir qualquer coisa.
Ouvi dizer que é possível usar expressões regulares com preg_replace, mas não entendo qual padrão definir. Preciso que restem apenas:
- Letras do alfabeto latino (a-z, A-Z)
- Letras do alfabeto cirílico (а-я, А-Я)
- Dígitos (0-9)
Todo o resto (espaços, sinais de pontuação, caracteres especiais, emojis) deve ser removido. Diga-me como fazer isso corretamente? De preferência com uma explicação.