関数・クラス解説

chr

version:PHP 4, PHP 5, PHP 7 (公式)

指定した数値を文字に変換する

フォーマット

string : chr ( int $bytevalue )

パラメータ

int bytevalue (必須)
0 から 255 までの数値を指定。
範囲外の値を渡した場合、255 とのビット AND を行う。

返り値 string
指定されたバイトを含む、一文字からなる文字列を返します。

解説

数値を指定するとASCIIコード(10進数)に対応した文字が返ります。
この関数はord()の逆の動作をします。

記述サンプル

//PHP 7.4.6で実行

//アスキーコードで「A」を指定
echo chr(65);

//結果
A

-----------------------------
//LF(改行コード)を追加
echo "この文字列にLFを追加:".chr(10);
//上記は以下と同様の作動となる
echo sprintf("この文字列にLFを追加:%c", 10);

//結果
この文字列にLFを追加:

-----------------------------
//ブラウザで表示可能なすべてのASCII文字を表示
//ループ範囲を0~255とすることですべての範囲を網羅できるが、文字化けや表示できない制御文字などは除いている
for ( $i = 32; $i < 127; $i++ ) {
 print chr($i);
}

//結果
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

参考リンク

ord 文字列の先頭バイトを、0~255 までの値に変換
sprintf 文字列を指定されたフォーマットで整形して返却

タグ

ASCII 変換 String 文字列


公式リファレンス

書式

chr ( int $bytevalue ) : string

説明

bytevalue を符号なし数値と解釈することによって指定された文字を含む、 1文字からなる文字列を返します。

この関数は、ASCII, ISO-8859, Windows 1252 のような シングルバイトエンコーディング においては、文字セットのマッピングテーブルにある望みの文字の位置を 渡すことで、一文字の文字列を作り出すのに使えます。 しかし、この関数は string のエンコーディングについて知りませんし、 特に UTF-8 や UTF-16 のようなマルチバイトエンコーディングについては、 この関数に Unicode のコードポイントは渡せないことに注意してください。

この関数はord()の逆の動作をします。

パラメータ

bytevalue
0 から 255 までの数値 妥当な範囲 (0..255) 外の値を渡した場合は、255 とのビット AND を行います。 この処理は、以下のコードと同様のアルゴリズムです。
while ($bytevalue < 0) {    $bytevalue += 256;}$bytevalue %= 256;

返値

指定されたバイトを含む、一文字からなる文字列を返します。

更新履歴

バージョン 説明
7.4.0 bytevalue に対して、 サポートされていない入力が与えられた場合、 黙って0 にキャストする動作をしなくなりました。

サンプル

例1 chr() の例

// Assumes the string will be used as ASCII or an ASCII-compatible encoding $str = "この文字列はエスケープで終了します: "; $str .= chr(27); /* $str の最後にエスケープ文字を付加する */ /* こちらの方がより便利なことが多い */ $str = sprintf("この文字列はエスケープで終了します: %c", 27);

例2 オーバーフローの挙動

echo chr(-159), chr(833), PHP_EOL;

上の例の出力は以下となります。

aA

例3 個別のバイトから、UTF-8 文字列を組み立てる

$str = chr(240) . chr(159) . chr(144) . chr(152); echo $str;

上の例の出力は以下となります。

????

参考

  • sprintf() - フォーマットされた文字列を返す のフォーマット文字列 %c
  • ord()
  • » ASCII テーブル
  • mb_chr()
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    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 _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール