chr

(PHP 4, PHP 5, PHP 7, PHP 8)

chr从数字生成单字节字符串

说明

chr(int $codepoint): string

返回单字符字符串,包含将 codepoint 作为无符号整数解释的指定字符。

这可用于在一种单字节编码(像是 ASCII、ISO-8859 或 Windows 1252)中通过传递想要的字符在编码映射表中的位置来创建单字符字符串。但是,注意此函数并不清楚任何字符串编码,特别是无法通过传递一个 Unicode 码位值来生成多字节编码(像是 UTF-8 或 UTF-16)字符串。

此函数与 ord() 互补。

参数

codepoint

一个介于 0 与 255 之间的整数。

超过有效范围(0..255)的值将和 255“按位与”,与以下算法等效:

while ($bytevalue < 0) {
$bytevalue += 256;
}
$bytevalue %= 256;

返回值

包含指定字节的单字符字符串。

更新日志

版本 说明
7.4.0 此函数不再静默接受不支持的 codepoint,并会将它们转为 0

示例

示例 #1 chr() 例子

<?php
// 假设该字符串将被作为 ASCII 或是一个与 ASCII 兼容的编码使用

$str = "The string ends in escape: ";
$str .= chr(27); /* 在 $str 末尾添加一个转义字符 */

/* 通常这样更有用 */

$str = sprintf("The string ends in escape: %c", 27);
?>

示例 #2 溢出行为

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

以上示例会输出:

aA

示例 #3 从单个字节构建 UTF-8 字符串

<?php
$str
= chr(240) . chr(159) . chr(144) . chr(152);
echo
$str;
?>

以上示例会输出:


🐘

参见

  • sprintf() - 返回格式化字符串 如何使用格式字符串 %c
  • ord() - 转换字符串第一个字节为 0-255 之间的值
  • 一个 » ASCII 表
  • mb_chr() - 按 Unicode 码位值返回字符
  • IntlChar::chr() - Return Unicode character by code point value