ctype_print

ctype_print/ctype_graph関数:印字可能な文字列かどうかを調べる

使い方

$printable = ctype_print( $ascii_text );
$visibility = ctype_graph( $ascii_text );

その文字列が印字可能な文字列かどうかを調べたくなったら
この関数を使うことができます。
関数の引数に調べたい文字列を渡してあげれば、
戻り値がTRUEであれば文字全てが印字可能、FALSEであれば印字不可能(目に見えない印字)な文字が含まれていると判断できます。
空白や制御文字などが含まれると戻り値にFALSEが返ってきます。
ご紹介した関数にctype_print関数とctype_graph関数の2種類がありますが、微妙に動作が異なります。
ctype_print関数は空白文字は印字可能と判断します。

ためしにASCIIコードの文字がどのように判断されるかを調べてみました。

ctype_print関数の結果 ソースコード
ctype_print_ascii

ctype_graph関数の結果
ctype_graph_ascii

※2014/03/24追記
上の画像、30,60,90,120が重複してます。。。すんません。

使いどころ

たとえばニックネームとして使える文字列かどうか、
そういう場合に使える?かもしれません。。と考えましたが、
それならば正規表現でもう少し明確に指定したほうがいいでしょうし、
マルチバイト文字列も対応していないので。
どうすりゃいいんだろうと考えたくなる関数です。

最近は使えそうな関数ばかりご紹介していたので
こういう微妙な使いどころの関数をもっと紹介したいです。

公式サイト
http://jp1.php.net/manual/ja/function.ctype-graph.php