章: 第1章: 文法の土台
フォームから届いた文字列、そのまま使っていませんか?
ユーザーが入力した文字列には、前後に余計なスペースが入っていたり、大文字・小文字が混在していたりします。そのまま使うとバグや検索ミスの原因になります。PHPには文字列を整形・検索するための関数が豊富に用意されており、覚えておくだけで実務の前処理が大幅に楽になります。
まずコードを動かしてみる
<?php
$text = ' hello php ';
$text = trim($text);
echo strtoupper($text);
trim() で前後のスペースを除去し、strtoupper() で大文字に変換しています。たった2行でよくある入力の問題を解決できます。
よく使う文字列関数一覧
| 関数 | 役割 | 例 |
trim($str) |
前後の空白除去 | trim(' hello ') → 'hello' |
strlen($str) |
文字列の長さ | strlen('PHP') → 3 |
strtolower($str) |
小文字変換 | strtolower('PHP') → 'php' |
strtoupper($str) |
大文字変換 | strtoupper('php') → 'PHP' |
strpos($str, $needle) |
部分文字列の位置 | strpos('hello', 'l') → 2 |
str_replace($old, $new, $str) |
置換 | str_replace('a', '@', 'banana') → 'b@n@n@' |
substr($str, $start, $len) |
部分取得 | substr('hello', 1, 3) → 'ell' |
mb_strlen($str) |
マルチバイト文字の長さ | 日本語に必須 |
チェックポイント: 日本語を含む文字列には
mb_strlen()・mb_substr()などの mb_ 系関数を使いましょう。通常のstrlen()はバイト数を返すため、日本語で正しい文字数が得られません。
実務でよくある使い方
<?php
$email = trim($_POST['email'] ?? '');
$email = strtolower($email); // 大文字を小文字に統一
if (strpos($email, '@') === false) {
echo 'メールアドレスの形式が正しくありません';
}
まとめ & 次のステップ
trim()でフォーム入力の前後スペースを除去する習慣をつけるstrtolower()でメールアドレスなどを小文字統一するstrpos()は見つからない場合にfalseを返す(=== falseで判定する)- 日本語文字列には
mb_系関数を使う - 文字列関数を組み合わせるだけで、入力値の前処理がほぼ完成する
次回は 数値演算を学びます。料金計算や集計処理に必要な演算子と関数を整理します。