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, utilisezmb_convert_encoding()ouiconv()à 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()
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
$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é :
╨Т╨╡╨║╨╕╨▓ ╨╧╨░╨╣╨▓╨╕╨▓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
$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 :
╨Т╨╡╨║╨╕╨▓ ╨╧╨░╨╣╨▓╨╕╨▓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 ?