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) ?>
-
PHPのaddcslashes()関数の使い方を解説!文字列にバックスラッシュを付加する方法
PHPのaddcslashes()関数は、指定した文字の前にバックスラッシュ(\)を付加した文字列を返す関数です。C言語スタイルのエスケープ処理に相当し、単一の文字だけでなく「a..r」のような文字範囲を指定してまとめてエスケープできるのが特徴です。注意:addcslashes()関数は大文字と小文字を区別します。そのため、「W」を指定しても小文字の「w」はエスケープされません。構文addcslashes(str, characters)パラメータstr − エスケープ処理の対象となる文字列characters − エスケープしたい文字、またはエスケープ対象となる文字の範囲(例:「a..r」)
-
【PHP入門】ctype_graph()関数の使い方をわかりやすく解説
PHPのctype_graph()関数は、指定した文字列が「空白以外の表示可能な文字」だけで構成されているかどうかをチェックする関数です。文字列内のすべての文字が英数字や記号など、画面上に実際に表示される文字であれば TRUE を返し、1つでも空白や制御文字などの表示されない文字が含まれていれば FALSE を返します。構文ctype_graph(str)パラメータstr ― チェック対象となる文字列。戻り値文字列内のすべての文字が表示可能であり、実際に目に見える出力を生成する場合(空白・ホワイトスペースは含めない)には TRUE を返します。それ以外の場合は FALSE を返します。ctyp