Aller au contenu

convert_cyr_string()

Remarque : convert_cyr_string() a été supprimé dans PHP 8.0. Il s'agit d'une fonction héritée qui ne devrait pas être utilisée dans les applications PHP modernes. Pour convertir entre jeux de caractères, utilisez mb_convert_encoding() ou iconv() à la place.

La fonction convert_cyr_string() était historiquement utilisée pour convertir une chaîne d'un ancien jeu de caractères cyrillique à un autre. La syntaxe de la fonction convert_cyr_string() était la suivante :

Syntaxe PHP de convert_cyr_string()

php
string convert_cyr_string ( string $str , string $from , string $to )

La fonction prenait trois paramètres : la chaîne à convertir ($str), le jeu de caractères source ($from) et le jeu de caractères cible ($to). La fonction convert_cyr_string() renvoyait la chaîne convertie.

Voici un exemple d'utilisation de la fonction :

Exemple de PHP convert_cyr_string()

php
<?php
$string = "Текст на русском";
$converted_string = convert_cyr_string($string, "w", "k");
echo $converted_string;
?>

Dans cet exemple, la chaîne est considérée comme appartenant au jeu de caractères w (Windows-1251), historiquement utilisé pour le texte cyrillique. Nous la convertissons vers le jeu de caractères k (KOI8-R). Nous passons la chaîne, w et k à la fonction convert_cyr_string(), qui renvoie la chaîne convertie.

La sortie de ce code dans un environnement UTF-8 moderne sera du texte corrompu (mojibake), car les octets bruts sont réinterprétés sans contexte d'encodage approprié :

console
╨Т╨╡╨║╨╕╨▓ ╨╧╨░╨╣╨▓╨╕╨▓

Comme vous pouvez le voir, la fonction a converti les octets bruts, mais sans correspondre à l'encodage de l'environnement, elle ne s'affiche pas sous forme de texte cyrillique lisible.

Voici un autre exemple historique utilisant le jeu de caractères i (ISO 8859-5) :

Comment utiliser PHP convert_cyr_string() ?

php
<?php
$string = "Текст на русском";
$converted_string = convert_cyr_string($string, "w", "i");
echo $converted_string;
?>

Dans cet exemple, nous convertissons la chaîne vers le jeu de caractères i. Nous passons la chaîne, w et i à la fonction convert_cyr_string(), qui renvoie la chaîne convertie.

La sortie de ce code dans un environnement UTF-8 moderne produira également du texte corrompu :

console
╨Т╨╡╨║╨╕╨▓ ╨╧╨░╨╣╨▓╨╕╨▓

La fonction convert_cyr_string() est un outil hérité qui n'est plus maintenu. Le développement PHP moderne repose par défaut sur l'UTF-8, et les fonctions d'encodage héritées comme celle-ci sont obsolètes. Pour une conversion fiable des jeux de caractères, utilisez mb_convert_encoding() ou iconv() avec des cibles UTF-8 explicites.

Nous espérons que cet article vous a aidé à comprendre le contexte historique de la fonction convert_cyr_string() en PHP. Si vous avez des questions ou des commentaires, n'hésitez pas à nous contacter.

Pratique

Que fait la fonction PHP 'iconv' telle que décrite dans l'article ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.