(PHP 4, PHP 5, PHP 7)
chr — Erzeuge eine Ein-Byte-Zeichenkette aus einer Zahl
$bytevalue
) : string
Gibt einen Ein-Zeichen-String zurück, der das angegebene Zeichen enthält, wobei
bytevalue
als vorzeichenlose Ganzzahl interpretiert wird.
Dies kann verwendet werden, um einen Ein-Zeichen-String in einer Ein-Byte-Kodierung wie ASCII, ISO-8859 oder Windows 1252 zu erzeugen, indem die Position des gewünschten Zeichens in der Kodierungszuordnungstabelle übergeben wird. Allerdings ist zu beachten, dass diese Funktion die Zeichenkettenkodierung ignoriert, und insbesondere kein Unicode Code-Point übergeben werden kann, um eine Zeichenkette in einer Multi-Byte-Kodierung wie UTF-8 oder UTF-16 zu erzeugen.
Die Funktion ergänzt ord().
bytevalue
Ein Integer zwischen 0 und 255.
Werte außerhalb des gültigen Bereichs (0..255) werden bitweise mit 255 und-verknüpft, was gleichwertig zu folgendem Algorithmus ist:
while ($bytevalue < 0) {
$bytevalue += 256;
}
$bytevalue %= 256;
Ein Ein-Zeichen-String, der das angegebene Byte enthält.
Beispiel #1 chr()-Beispiel
<?php
// Es wird angenommen, dass die Zeichenkette als ASCII oder ASCII-kompatible Kodierung verwendet wird
$str = "Dieser String endet mit einem Escape-Zeichen: ";
$str .= chr(27); /* fügt das Escape-Zeichen an das Ende von $str an */
/* Die häufig praktischere Lösung: */
$str = sprintf("Dieser String endet mit einem Escape-Zeichen: %c", 27);
?>
Beispiel #2 Überlauf-Verhalten
<?php
echo chr(-159), chr(833), PHP_EOL;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
aA
Beispiel #3 Erstellen eines UTF-8-String aus einzelnen Bytes
<?php
declare(encoding='UTF-8');
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe: