W3docs

chr()

La fonction chr() retourne un caractère correspondant à un code ASCII donné. Découvrez la syntaxe, les valeurs hors plage et les utilisations pratiques.

La fonction PHP chr() retourne une chaîne d'un seul octet contenant le caractère correspondant à une valeur d'octet donnée (généralement un code ASCII). C'est l'inverse de ord(), qui fait le chemin inverse — d'un caractère vers son code numérique.

Cette page couvre la syntaxe de chr(), la façon dont elle gère les valeurs hors de la plage 0–255, et des exemples pratiques pour construire des chaînes à partir de codes numériques.

Syntaxe

chr(int $codepoint): string

chr() prend un paramètre, $codepoint, la valeur numérique de l'octet à retourner, et retourne une chaîne d'un caractère (un octet). La valeur est interprétée dans la plage 0–255. Les valeurs hors de cette plage sont enveloppées avec le modulo 256 : PHP ajoute ou soustrait 256 de façon répétée jusqu'à ce que la valeur soit comprise entre 0 et 255. Ainsi, chr(321) est identique à chr(321 - 256), c'est-à-dire chr(65), et chr(-1) est identique à chr(255).

Exemple de base

L'usage le plus courant consiste à convertir un code ASCII en son caractère correspondant. Le code 65 correspond à la lettre A :

php— editable, runs on the server

Résultat :

A

On passe le code ASCII à chr(), qui retourne le caractère correspondant.

Génération d'une séquence de caractères

Comme les lettres ont des codes ASCII consécutifs, il est possible de parcourir une plage numérique en boucle pour construire une séquence. Les majuscules AZ vont de 65 à 90 :

php— editable, runs on the server

Résultat :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Chaque code ASCII est passé à chr(), qui retourne la lettre correspondante.

Valeurs hors de la plage 0–255

chr() ne génère jamais d'erreur pour une valeur hors plage — elle effectue un enveloppement avec le modulo 256 à la place. C'est important à savoir pour éviter des résultats inattendus lorsque des calculs poussent une valeur au-delà de la plage d'un octet :

<?php
echo chr(65) . "\n";   // A   (in range)
echo chr(321) . "\n";  // A   321 - 256 = 65
echo chr(256 + 65);    // A   wraps back to 65
?>

Les trois lignes affichent A, car 321 et 256 + 65 se réduisent tous deux à 65.

chr() et ord()

chr() et ord() forment une paire complémentaire :

  • chr(int) → retourne le caractère correspondant à une valeur d'octet.
  • ord(string) → retourne la valeur d'octet du premier caractère d'une chaîne.
<?php
$code = ord("A"); // 65
echo chr($code);  // A
?>

Passer une valeur dans ord() puis dans chr() (ou inversement) restitue la valeur d'origine — ils forment un aller-retour.

Note sur le texte multi-octet

chr() fonctionne sur des octets individuels, donc elle est fiable uniquement pour l'ASCII (0–127) et d'autres encodages à un seul octet. Elle ne produit pas de caractère multi-octet UTF-8 : passer un point de code Unicode supérieur à 255 ne donnera pas l'emoji ou la lettre accentuée correspondante — la valeur sera enveloppée dans la plage 0–255. Pour les points de code Unicode complets, utilisez mb_chr() (et mb_ord() pour l'inverse) de l'extension mbstring.

Fonctions associées

  • ord() — la fonction inverse : d'un caractère vers sa valeur ASCII/octet.
  • str_split() — divise une chaîne en un array de caractères.
  • strtoupper() — convertit une chaîne en majuscules.
  • PHP Strings — aperçu de la gestion des chaînes en PHP.

Pratique

Pratique
Quelle est la fonction de chr() en PHP ?
Quelle est la fonction de chr() en PHP ?
Was this page helpful?