(PHP 4, PHP 5, PHP 7, PHP 8)
chr — Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl
Gibt eine einstellige Zeichenkette zurück, die das angegebene Zeichen
enthält, wobei codepoint
als vorzeichenlose Ganzzahl
interpretiert wird.
Diese Funktion kann verwendet werden, um eine einstellige Zeichenkette in einer Ein-Byte-Kodierung wie ASCII, ISO-8859 oder Windows 1252 zu erzeugen, indem die Position des gewünschten Zeichens in der Zuordnungstabelle der Kodierung übergeben wird. Allerdings ist zu beachten, dass diese Funktion keine Zeichenkettenkodierung kennt, und insbesondere kein Unicode-Codepoint übergeben werden kann, um eine Zeichenkette in einer Multibyte-Kodierung wie UTF-8 oder UTF-16 zu erzeugen.
Die Funktion ist das Gegenstück zu ord().
codepoint
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;
Eine einstellige Zeichenkette, die das angegebene Byte enthält.
Version | Beschreibung |
---|---|
7.4.0 |
Die Funktion akzeptiert nicht unterstütze
codepoint s nicht mehr stillschweigend und setzt
diese auf 0 .
|
Beispiel #1 chr()-Beispiel
<?php
// Es wird angenommen, dass die Zeichenkette als ASCII oder ASCII-kompatible
// Kodierung verwendet wird
$str = "Diese Zeichenkette 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("Diese Zeichenkette 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 einer UTF-8-Zeichenkette aus einzelnen Bytes
<?php
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
%c