W3docs

chr()

Die Funktion chr() gibt ein Zeichen anhand des ASCII-Codes zurück. Syntax, Wertebereich und praktische Anwendungsbeispiele werden hier erklärt.

Die PHP-Funktion chr() gibt einen einbytigen String zurück, der das Zeichen enthält, das einem bestimmten Bytewert (üblicherweise einem ASCII-Code) entspricht. Sie ist die Umkehrung von ord(), die den umgekehrten Weg geht — von einem Zeichen zu seinem numerischen Code.

Diese Seite behandelt die Syntax von chr(), den Umgang mit Werten außerhalb des Bereichs 0–255 sowie praktische Muster zum Aufbau von Strings aus numerischen Codes.

Syntax

chr(int $codepoint): string

chr() nimmt einen Parameter entgegen, $codepoint, den numerischen Wert des zurückzugebenden Bytes, und gibt einen einstelligen (einbytigen) String zurück. Der Wert wird im Bereich 0–255 interpretiert. Werte außerhalb dieses Bereichs werden per Modulo 256 angepasst: PHP addiert oder subtrahiert so oft 256, bis der Wert zwischen 0 und 255 liegt. chr(321) entspricht also chr(321 - 256), d. h. chr(65), und chr(-1) entspricht chr(255).

Einfaches Beispiel

Die häufigste Verwendung ist die Umwandlung eines ASCII-Codes in sein Zeichen. Der Code 65 steht für den Buchstaben A:

php— editable, runs on the server

Ausgabe:

A

Wir übergeben den ASCII-Code an chr(), und die Funktion gibt das entsprechende Zeichen zurück.

Eine Zeichenfolge generieren

Da Buchstaben aufeinanderfolgende ASCII-Codes haben, kann man über einen numerischen Bereich iterieren, um eine Zeichenfolge zu erzeugen. Großbuchstaben AZ haben die Codes 65 bis 90:

php— editable, runs on the server

Ausgabe:

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

Jeder ASCII-Code wird an chr() übergeben, die den entsprechenden Buchstaben zurückgibt.

Werte außerhalb von 0–255

chr() erzeugt bei einem Wert außerhalb des gültigen Bereichs keinen Fehler — stattdessen wird Modulo 256 angewendet. Das ist wichtig zu wissen, damit keine überraschenden Ergebnisse entstehen, wenn Berechnungen einen Wert über den Bytebereich hinausschieben:

<?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
?>

Alle drei Zeilen geben A aus, weil 321 und 256 + 65 beide auf 65 reduziert werden.

chr() vs. ord()

chr() und ord() bilden ein komplementäres Paar:

  • chr(int) → gibt das Zeichen zu einem Bytewert zurück.
  • ord(string) → gibt den Bytewert des ersten Zeichens eines Strings zurück.
<?php
$code = ord("A"); // 65
echo chr($code);  // A
?>

Einen Wert durch ord() und dann durch chr() zu führen (oder umgekehrt) ergibt das Original — sie sind invers zueinander.

Hinweis zu Multibyte-Text

chr() arbeitet auf einzelnen Bytes und ist daher nur für ASCII (0–127) und andere Einzelbyte-Kodierungen zuverlässig. Es erzeugt kein UTF-8-Multibyte-Zeichen: Ein Unicode-Codepunkt über 255 führt nicht zum entsprechenden Emoji oder Akzentbuchstaben — er wird stattdessen in den Bereich 0–255 gefaltet. Für vollständige Unicode-Codepunkte verwendet man mb_chr() (und mb_ord() für die Umkehrung) aus der mbstring-Erweiterung.

Verwandte Funktionen

  • ord() — die Umkehrung: Zeichen zu seinem ASCII-/Bytewert.
  • str_split() — einen String in ein Array von Zeichen aufteilen.
  • strtoupper() — einen String in Großbuchstaben umwandeln.
  • PHP Strings — Übersicht zur String-Verarbeitung in PHP.

Übung

Übung
Was ist die Funktion von chr() in PHP?
Was ist die Funktion von chr() in PHP?
Was this page helpful?