Comment supprimer tous les caractères non alphanumériques d'une chaîne en PHP ?
Bonjour à tous ! Je suis débutant en PHP et j'ai rencontré un problème : je dois nettoyer une chaîne de tout sauf des lettres (latin et cyrillique) et des chiffres. J'ai essayé avec str_replace — c'est devenu terriblement lourd, j'ai dû énumérer chaque caractère. Voici ce que j'ai essayé de faire :
```php
$text = "Привет, мир! Как дела? 123.";
$clean = str_replace(array(',', '!', '?', '.', ' '), '', $text);
echo $clean; // ПриветмирКакдела123
```
Mais ce n'est pas sérieux — énumérer manuellement tous les signes de ponctuation possibles, les espaces et autres déchets. Et s'il y a des parenthèses, des barres obliques ou des caractères spéciaux comme @#$% ? De plus, l'utilisateur peut saisir n'importe quoi.
J'ai entendu dire qu'on peut utiliser les expressions régulières avec preg_replace, mais je ne comprends pas quel motif définir. Il faut qu'il ne reste que :
- Les lettres de l'alphabet latin (a-z, A-Z)
- Les lettres cyrilliques (а-я, А-Я)
- Les chiffres (0-9)
Tout le reste (espaces, signes de ponctuation, caractères spéciaux, emojis) doit être supprimé. Pouvez-vous m'indiquer comment faire correctement ? De préférence avec une explication.