読み込み中...

PHPで桁数を制御する!初心者向けの5つのステップ

PHPを使った桁数制御の作り方を解説する記事のサムネイル PHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

ウェブサイトやアプリケーションを開発する際、データの正確性を確保することは非常に重要です。

それは、ユーザーからの入力データが想定した形式や範囲であることを保証するためです。

ここで重要な役割を果たすのが、「桁数チェック」です。

桁数チェックは、例えばパスワードの強度を確保したり、電話番号や郵便番号といった特定のフォーマットに適合するようなデータを受け取るために使用されます。

この記事を読むことで、PHPを使った桁数チェックの基本的な手法とその応用方法を身につけることができます。

●PHPとは:PHPの基礎知識

PHPは、ウェブサイトのサーバーサイドで動作するスクリプト言語です。

HTMLと組み合わせて使用されることが多く、動的なウェブページを生成するのに役立ちます。

○PHPの特徴

PHPは、オープンソースの言語であり、無料で利用できます。

そのため、世界中で広く使われています。

また、PHPは比較的習得が容易で、初心者にとっても親しみやすい言語とされています。

○PHPの利点

PHPの最大の利点は、データベースとの連携が容易であることです。

MySQLやPostgreSQLなど、様々なデータベース管理システムとの連携が可能で、ウェブアプリケーションの開発に適しています。

●PHPでの桁数チェックの仕方

PHPで桁数をチェックする方法の一つに、strlen関数を使う方法があります。

strlen関数は、指定した文字列の長さ(桁数)を返す関数です。

○桁数チェックの基本:strlen関数

strlen関数の基本的な使い方は次の通りです。

$string = "Hello, world!";
echo strlen($string);  // 出力結果:13

この例では、変数$stringに格納された文字列の長さ(桁数)を求めています。

“Hello, world!”は13文字(スペースと句読点も含む)なので、結果は13となります。

○サンプルコード1:strlen関数の基本的な使い方

PHPで桁数を調べる際によく用いられるのが、strlen関数です。

その基本的な使い方を紹介します。

<?php
$text = "こんにちは、世界!";
echo strlen($text);
?>

このコードでは、”こんにちは、世界!”という文字列の長さをstrlen関数を用いて計算しています。そして、その結果を表示しています。

この例では、日本語の文字列を扱っているため、出力結果は24となります。

なぜなら、1文字あたり3バイトを占めるためです。

次に、ユーザーからの入力値の桁数をチェックする方法を見ていきましょう。

○サンプルコード2:入力値の桁数をチェックする

ユーザーからの入力値の桁数をチェックするには、次のようなコードを書くことができます。

<?php
$input = $_POST['input'];
if (strlen($input) > 10) {
    echo "入力は10文字以内にしてください。";
} else {
    echo "入力を受け付けました。";
}
?>

このコードでは、ユーザーから受け取った入力値が10文字を超えているかどうかをチェックしています。

もし10文字を超えていれば、「入力は10文字以内にしてください。」というメッセージを表示し、それ以外の場合は「入力を受け付けました。」と表示します。

●PHPでの桁数チェックの応用例

桁数チェックは、入力値の長さだけでなく、パスワードの強度をチェックする際にも使われます。

○サンプルコード3:パスワードの強度をチェックする

例えば、パスワードが8文字以上であることを確認するには、次のようなコードを書くことができます。

このコードでは、ユーザーから受け取ったパスワードが8文字未満かどうかをチェックしています。

もし8文字未満であれば、「パスワードは8文字以上で設定してください。」というメッセージを表示し、それ以外の場合は「パスワードを受け付けました。」と表示します。

○サンプルコード4:入力値の桁数を制限する

また、桁数チェックを用いて、ユーザーからの入力値の桁数を制限することも可能です。

<?php
$input = $_POST['input'];
if (strlen($input) > 100) {
    $input = substr($input, 0, 100);
    echo "入力値が長すぎるため、最初の100文字だけを受け付けました。";
}
?>

このコードでは、ユーザーから受け取った入力値が100文字を超えている場合、substr関数を用いて最初の100文字だけを取り出しています。

そして、「入力値が長すぎるため、最初の100文字だけを受け付けました。」というメッセージを表示します。

これにより、入力値の桁数を制限することができます。

●注意点と対処法

PHPで桁数チェックを行う際には、何点か注意点があります。

○PHPでの桁数チェック時の一般的な問題

一つ目の注意点は、日本語文字列の扱いです。

PHPのstrlen関数は、バイト単位で文字列の長さを返すため、マルチバイト文字を含む文字列では期待通りの結果が得られないことがあります。

その場合は、mb_strlen関数を使用することで解決できます。

二つ目の注意点は、空白文字です。

ユーザーが入力フォームに空白文字だけを入力した場合、strlen関数はそれを0ではなく、入力された空白文字の数としてカウントします。

そのため、前後の空白を削除するtrim関数を使用すると良いでしょう。

○それぞれの問題に対する解決策

それぞれの問題に対応した解決策をサンプルコードで見てみましょう。

<?php
$input = trim($_POST['input']);
if (mb_strlen($input) > 100) {
    $input = mb_substr($input, 0, 100);
    echo "入力値が長すぎるため、最初の100文字だけを受け付けました。";
}
?>

このコードでは、trim関数で前後の空白を削除し、mb_strlen関数とmb_substr関数を使ってマルチバイト文字も正しく扱っています。

まとめ

本記事では、PHPを使用した桁数チェックの基本から応用までを解説しました。

正確なデータの取り扱いは、ウェブアプリケーションの品質を保つために非常に重要です。

特に、ユーザーからの入力値を適切に制限し、チェックすることは、予期しない問題を防ぐ上で不可欠です。

桁数チェックは一見シンプルな処理のように思えますが、日本語のマルチバイト文字や空白文字の扱いといった注意点があるため、適切に実装するには理解と注意が必要です。

今回学んだstrlen関数やmb_strlen関数を使えば、状況に応じた適切な桁数チェックが可能となります。

また、trim関数やsubstr関数、mb_substr関数を組み合わせることで、さらに柔軟な入力制限を実現できます。

PHPでの桁数チェックは、そのような細部まで配慮することで初めてその真価を発揮します。

本記事が、皆様のPHPコーディングの参考となることを願っています。