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

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

PHPのctype_graph()関数は、指定した文字列が「空白以外の表示可能な文字」だけで構成されているかどうかをチェックする関数です。文字列内のすべての文字が英数字や記号など、画面上に実際に表示される文字であれば TRUE を返し、1つでも空白や制御文字などの表示されない文字が含まれていれば FALSE を返します。

構文

ctype_graph(str)

パラメータ

  • str ― チェック対象となる文字列。

戻り値

文字列内のすべての文字が表示可能であり、実際に目に見える出力を生成する場合(空白・ホワイトスペースは含めない)には TRUE を返します。それ以外の場合は FALSE を返します。

ctype_graph()が判定できる文字の例

  • 英字(A〜Z、a〜z)
  • 数字(0〜9)
  • 記号や句読点(! @ # % . , など)

一方、半角スペース、タブ、改行などの空白類は「目に見える出力を生成しない」とみなされるため、これらが含まれる文字列は FALSE となります。

使用例

以下にctype_graph()関数の具体的な使用例を示します。

<?php
$arr = array('khy\n\r\t', 'arf12', 'LKA#@%.54');
foreach ($arr as $demo) {
    if (ctype_graph($demo)) {
        echo "$demo consists of all (visibly) printable characters \n";
    } else {
        echo "$demo does not have all (visibly) printable characters. \n";
    }
}
?>

出力結果

khy\n\r\t consists of all (visibly) printable characters.
arf12 consists of all (visibly) printable characters
LKA#@%.54 consists of all (visibly) printable characters

解説

この例では、3つの文字列すべてが TRUE と判定されています。特に注目したいのは最初の 'khy\n\r\t' です。シングルクォートで囲まれた文字列の中では、\n や \r、\t は改行やタブとして解釈されず、「\」と「n」「r」「t」というリテラル文字として扱われます。そのため、実質的にはすべて表示可能な文字で構成された文字列となり、ctype_graph()は TRUE を返します。

もしダブルクォート(" ")で囲んでいた場合は、\n や \t が実際の改行・タブ文字に置き換わり、表示できない文字が含まれることになるため、結果は FALSE になります。クォートの種類によって挙動が変わる点は、ctype_graph()を使う際の注意点として覚えておくと良いでしょう。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

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

    PHPのctype_print()関数は、指定された文字列に含まれるすべての文字が印字可能な文字(printable character)であるかどうかをチェックします。空白スペースも印字可能な文字として扱われます。 文字列内のすべての文字が実際に出力を生成できる場合はTRUEを返し、制御文字や出力・制御機能を一切持たない文字が含まれている場合はFALSEを返します。 構文 ctype_print(str) パラメータ str − チェック対象となる文字列です。 戻り値 文字列内のすべての文字が実際に出力を生成できる場合(空白を含む)はTRUEを返します。制御文字や、出力・制御機能を持た