ctype_alpha/ctype_alnum関数の使い方(英字の判別)

PHP で用意されている組み込み関数の一つである ctype_alpha 関数および ctype_alnum 関数の使い方です。 ctype_alpha 関数は関数の引数に指定された文字列に英字だけが含まれているかどうかを確認します。また ctype_alnum 関数は英字だけでなく、英字か数字だけが含まれているかどうかを確認します。

(2022 年 09 月 28 日公開 / 2022 年 09 月 28 日更新)

ctype_alpha関数およびctype_alnum関数の書式と基本的な使い方

ctype_alpha 関数は次のように定義されています。

boolean ctype_alpha(string text)

引数の文字列に英字だけが含まれているかどうかを確認します。英字はa~z,
A~Zです。英字だけであればTRUEを英字以外が含まれていればFALSEを返します。

引数:
  text  調べる文字列。 
返り値:
  textのすべての文字が英字だった場合に TRUE 、そうでない場合に FALSE 
    を返します。

英字だけでなく、英字か数字だけが含まれているかどうかを確認する関数として「ctype_alnum」関数も用意されています。

boolean ctype_alnum(string text)

引数の文字列に英字又は数字だけが含まれているかどうかを確認します。英字
はa~z,A~Z、数字は0~9です。英字又は数字だけであればTRUEを英字又は数字
以外が含まれていればFALSEを返します。

引数:
  text  調べる文字列。
返り値:
  textのすべての文字が英字又は数字だった場合に TRUE 、そうでない場合に
    FALSE を返します。
サンプルコード

では実際に試してみます。

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

$input_data = $_GET['text1'];

function dispKekka($str){
    $kekka1 = ctype_alpha($str);
    $kekka2 = ctype_alnum($str);

    print('調べる文字列は'.$str.'です<br>');

    if ($kekka1 == TRUE){
        print('文字列は英字だけが含まれています<br><br>');
    }else{
        if ($kekka2 == TRUE){
            print('文字列は英字及び数字だけが含まれています<br><br>');
        }else{
            print('文字列は英数字以外の文字が含まれています<br><br>');
        }
    }
}

$str = 'abcdef';
dispKekka($str);

$str = 'abc@def';
dispKekka($str);

$str = 'abc654def';
dispKekka($str);

?>
</body>
</html>

上記のファイルを Web サーバに設置しブラウザ経由で見ると下記のように表示されます。

ctype_alphaとctype_alnumのテスト

-- --

PHP で用意されている組み込み関数の一つである ctype_alpha 関数および ctype_alnum 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。