PHPのCTYPE関数の詳細な説明:文字型検証ツール
コアポイント
PHP 4.2以降に含まれるCTYPE関数ファミリは、文字列の文字のタイプを検証するために使用され、データ検証によく使用されます。文字列には、資本文字、数字、16進数文字などのみが含まれているかどうかを確認できます。ただし、これらの関数で渡された文字列が常に文字列であることを確認してください。ctype_alnum()
(数値文字)、ctype_alpha()
(小文字)、ctype_digit()
(上級文字)など、さまざまなタイプのものです。 、など。各関数は、文字列内の各文字が関数によって指定された型に属しているかどうかをチェックします。 ctype_lower()
ctype_upper()
CType関数は使いやすく、フォーム入力データを検証するときに特に役立ちます。しかし、データを検証する唯一の方法ではありません。特定のニーズに応じて、is_numeric()
などのその他の機能も使用できます。 is_float()
is_integer()
--disable-ctype
<?php $numeric_string = "42"; $integer = 42; ctype_digit($numeric_string); // true ctype_digit($integer); // false (ASCII 42 is '*') is_numeric($numeric_string); // true is_numeric($integer); // true
上記のコードを見ると、最初の行はtrueに評価されます。ただし、2番目のステートメントはfalseです。 42は正しい整数ですが、CTYPEステートメントはそれを単一のASCII文字、この場合はアスタリスクとして評価します。もちろん、CTYPE関数は、データを検証する唯一の方法ではありません。ニーズに応じて、is_numeric()
関数を使用することもできます。数字を数字として扱い、以下に示すように真の値を返します:
<?php is_numeric($numeric_string); // true is_numeric($integer); // true
is_*
、is_float()
などを含む他のis_integer()
関数があります。なぜここでis_*
機能について議論しているのですか?複数の方法があることを思い出させるために。実際、今日の時代には、おそらくそれを言うべきではありません。これは単なる表現方法です。猫の肌を剥がして、これが私の考えであることをみんなに伝えないでください。それは、物事をする方法がたくさんあるというだけです。
利用可能な関数
私はすでに広範なチェックを実行できることを提案していますが、利用可能な機能は何ですか?どのような種類のチェックを実行できますか?リストは次のとおりです
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
の使用方法
CTYPE関数を使用することは非常に簡単です。通常、IFステートメントに設定します。配列内の複数の値をテストする場合は、ループに埋め込み、関数呼び出しの結果がtrueまたはfalsであるかどうかを確認します。 trueは、文字列内の各文字がその特定の関数呼び出しの文字タイプであることを意味します。例は次のとおりです。<?php $numeric_string = "42"; $integer = 42; ctype_digit($numeric_string); // true ctype_digit($integer); // false (ASCII 42 is '*') is_numeric($numeric_string); // true is_numeric($integer); // true
$string
の値が「azxc1234」の場合、それが有効であるというプロンプトが表示されます。 $string
の値が「123#axy」の場合、#が英数字ではないため、無効です。 PHP 5.1以降の空の文字列を渡すと、関数はfalseを返しますが、以前のバージョンではありますが、これは今すぐアップグレードするもう1つの理由です!)に注意してください。また、CTYPE関数への入力が文字列であることを確認することを忘れないでください!質問がある場合、キャストも悪くありません。
<?php is_numeric($numeric_string); // true is_numeric($integer); // true
結論
それだけです!これらの機能は、PHPのインストールに含める必要があります(そうでない場合は、奇妙なPHP設定の設定をアップグレードまたは停止する必要があります)。文字列に入るだけである限り、使いやすいです。では、どこで使用しますか?さて、フォームから文字列を導入する必要があるときはいつでも、それらを使用して、処理中のデータの有効性をテストできます。本当に、可能性は無限です。
php ctype関数FAQ(FAQ)
PHPのCTYPE関数は、特定の文字または文字列のタイプまたは値が特定の条件と一致するかどうかを確認するために使用されます。これらの機能は、入力の形式を確認したり、データを確認する必要がある場合に特に役立ちます。たとえば、文字列が数値のみで構成されているかどうかを確認するには、ctype_digit()
を使用したり、文字列が文字のみで構成されているかどうかを確認したりすることができます。 ctype_alpha()
非弦データ型でCTYPE関数を使用できますか?
CTYPE関数ケースは敏感ですか?
またはctype_alpha()
関数を使用して、文字列を小文字または大文字に変換してからCTYPE関数に渡すことができます。 strtolower()
strtoupper()
CTYPE関数を使用して、文字列に英数字のみが含まれているかどうかを確認する方法は?
ctype_digit()
とis_numeric()
の違いは何ですか? 両方の関数は、文字列に数値値が含まれているかどうかを確認するために使用されますが、重要な違いがあります。 ctype_digit()
関数は、文字列が完全に数値で構成されている場合にのみtrueを返します。一方、文字列に数値(科学表記のフローティングポイント数と数値を含む)が含まれている場合、is_numeric()
はtrueを返します。
いいえ、CTYPE関数はマルチバイト文字を処理できません。 ASCII文字のみを処理するように設計されています。マルチバイト文字に対処する必要がある場合は、代わりにMBSTring拡張機能を使用する必要があります。
バージョン4.0.4以来、CTYPE関数はPHPで提供されます。ただし、すべてのバージョンでデフォルトでは有効になっていません。 PHP 5.2.0以降では、デフォルトで有効になります。
はい、CTYPE関数は通常、ユーザー入力を検証するために使用されます。彼らは、入力が予想される形式と一致するようにするのに役立ちます。これは、エラーやセキュリティの脆弱性を防ぐのに役立ちます。
スペースをチェックするためのCTYPE関数はありません。ただし、文字列にスペース文字のみが含まれているかどうかを確認するには、ctype_space()
関数を使用できます。文字列がスペース文字のみで構成されている場合、この関数はtrueを返し、それ以外の場合は偽りです。
以上がPHPマスター| CTYPE関数の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。