PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのctype_print()関数の使い方:文字列が印字可能かどうかを判定する


PHPのctype_print()関数は、指定された文字列に含まれるすべての文字が印字可能な文字(printable character)であるかどうかをチェックします。空白スペースも印字可能な文字として扱われます。

文字列内のすべての文字が実際に出力を生成できる場合はTRUEを返し、制御文字や出力・制御機能を一切持たない文字が含まれている場合はFALSEを返します。

構文

ctype_print(str)

パラメータ

  • str − チェック対象となる文字列です。

戻り値

文字列内のすべての文字が実際に出力を生成できる場合(空白を含む)はTRUEを返します。制御文字や、出力・制御機能を持たない文字が含まれる場合はFALSEを返します。なお、空の文字列を渡した場合もFALSEが返される点に注意してください。

使用例

次の例では、3つの異なる文字列に対してctype_print()関数を使って判定を行っています。

<?php
$arr = array('asdf\n\r\t', 'yu67', "fooo#int%@");
foreach ($arr as $x) {
    if (ctype_print($x)) {
        echo "$x はすべて印字可能な文字で構成されています。\n";
    } else {
        echo "$x には印字不可能な文字が含まれています。\n";
    }
}
?>

出力

asdf\n\r\t はすべて印字可能な文字で構成されています。
yu67 はすべて印字可能な文字で構成されています。
fooo#int%@ はすべて印字可能な文字で構成されています。

補足:制御文字が含まれる場合の挙動

シングルクォートで囲んだ '\n\r\t' は、改行などの制御文字ではなく「バックスラッシュ+英字」というリテラル文字列として扱われるため、すべて印字可能と判定されます。一方、ダブルクォートで囲むとエスケープシーケンスが実際の制御文字に変換されるため、結果はFALSEになります。

<?php
$str = "Hello\nWorld";
var_dump(ctype_print($str)); // bool(false)
?>

  1. PHPのaddcslashes()関数の使い方を解説!文字列にバックスラッシュを付加する方法

    PHPのaddcslashes()関数は、指定した文字の前にバックスラッシュ(\)を付加した文字列を返す関数です。C言語スタイルのエスケープ処理に相当し、単一の文字だけでなく「a..r」のような文字範囲を指定してまとめてエスケープできるのが特徴です。注意:addcslashes()関数は大文字と小文字を区別します。そのため、「W」を指定しても小文字の「w」はエスケープされません。構文addcslashes(str, characters)パラメータstr − エスケープ処理の対象となる文字列characters − エスケープしたい文字、またはエスケープ対象となる文字の範囲(例:「a..r」)

  2. 【PHP入門】ctype_graph()関数の使い方をわかりやすく解説

    PHPのctype_graph()関数は、指定した文字列が「空白以外の表示可能な文字」だけで構成されているかどうかをチェックする関数です。文字列内のすべての文字が英数字や記号など、画面上に実際に表示される文字であれば TRUE を返し、1つでも空白や制御文字などの表示されない文字が含まれていれば FALSE を返します。構文ctype_graph(str)パラメータstr ― チェック対象となる文字列。戻り値文字列内のすべての文字が表示可能であり、実際に目に見える出力を生成する場合(空白・ホワイトスペースは含めない)には TRUE を返します。それ以外の場合は FALSE を返します。ctyp