PHPプログラミング

最終更新日:
公開日:

レシピ

文字列

半角アルファベットの大文字、小文字表記を整える

文字列に含まれるアルファベットについて、大文字と小文字の表記を整える方法について解説します。

この記事のポイント

  • アルファベットの大文字/小文字表記を揃える
  • 全ての単語の1文字目を大文字にする
  • 文章の先頭の単語のみ1文字目を大文字にする

目次

アルファベットの大文字・小文字の表記を整える

今回は次の3つの関数を使って、アルファベットの大文字・小文字の表記を整えていきます。

  • mb_strtolower関数 – 文字列の全ての半角アルファベットを大文字にする
  • mb_strtoupper関数 – 文字列の全ての半角アルファベットを小文字にする
  • ucwords関数 – 単語ごとの先頭文字のみ大文字にする

全て小文字にする「mb_strtolower関数」

strtolower関数は文字列に含まれる半角アルファベットを全て小文字に変換します。

コード例

// 変換する文字列
$str = "This is sample TEXT. CAT";

// 整える前の出力
var_dump($str);

// 小文字への変換を実行
$str = mb_strtolower($str);

// 整えた後の出力
var_dump($str);

出力例

// 整える前の出力
string(30) "This is sample TEXT. CAT"

// 整えた後の出力
string(30) "this is sample text. cat"

上記コード例では、もともと大文字だった「TEXT」が「text」に変換されました。
全角アルファベットの「CAT」も小文字に変換されています。

なお、この関数では「全角」「半角」の変換までは行われません。
この変換についてはmb_convert_kana関数で行います。
こちらの関数の使い方については別記事「半角、全角の表記を整える」をご覧ください。

全て大文字にする「mb_strtoupper関数」

mb_strtoupper関数は文字列に含まれる半角アルファベットを全て大文字に変換します。
mb_strtolower関数の対となる関数で、使い方も同じです.

コード例

// 変換する文字列
$str = "This is sample TEXT. cat";

// 整える前の出力
var_dump($str);

// 大文字への変換を実行
$str = mb_strtoupper($str);

// 整えた後の出力
var_dump($str);

出力例

// 整える前の出力
string(28) "This is sample TEXT. cat"

// 整えた後の出力
string(28) "THIS IS SAMPLE TEXT. CAT"

単語の先頭文字だけを大文字にする「ucwords関数」

ucwords関数mb_strtolower関数のように大文字・小文字のいずれかに統一するのではなく、単語の先頭文字だけを大文字に変換します。

コード例

// 変換する文字列
$str = "This is sample TEXT. cat";

// 変換を実行
$str = ucwords($str);

// 出力
var_dump($str);

出力例

// 整える前の出力
string(28) "This is sample TEXT. cat"

// 整えた後の出力
string(28) "This Is Sample TEXT. Cat"

全角の文字も変換できているように見えますが、次のように「cat」を大文字にしてみるとうまく変換されません。

コード例

// 変換する文字列
$str = "This is sample TEXT. CAT";

// 変換を実行
$str = ucwords($str);

// 出力
var_dump($str);

出力例

// 整える前の出力
string(30) "This is sample TEXT. CAT"

// 整えた後の出力
string(30) "This Is Sample TEXT. CAT"

CAT」の頭文字以外が小文字に変換されていません。
このように癖があるため注意してください。

「,(半角コンマ)」で区切られた文字列に「ucwords関数」を使用する

CSV形式のデータを処理する際など、単語が「,(半角コンマ)」などの記号文字で区切られていることもあります。
このような文字列に対しても、ucwords関数の2つ目のパラメータを使うことで使用することができます。

コード例

// 変換する文字列
$str = "cat,dog,fox,panda";

// 変換を実行
$str = ucwords( $str, ",");

// 出力
var_dump($str);

出力例

// 整える前の出力
string(17) "cat,dog,fox,panda"

// 整えた後の出力
string(17) "Cat,Dog,Fox,Panda"

ucwords関数の第2パラメータに指定する記号文字(デリミタ)は「,(半角コンマ)」以外にも、任意の記号や文字を使うことができます。
また、この文字については全角記号や文字も指定可能です。

関数を組み合わせて形式を整える

strtolower関数ucwords関数を組み合わせて、文字列の表記を整えていきます。

コード例

// 変換する文字列
$str = "This is sample TEXT.";

// 整える前の出力
var_dump($str);

// 小文字への変換を実行
$str = strtolower($str);

// 単語の先頭文字だけ大文字に変換
$str = ucwords($str);

// 整えた後の出力
var_dump($str);

出力例

// 整える前の出力
string(30) "This is sample TEXT."

// 整えた後の出力
string(30) "This Is Sample Text."

まずは全てのアルファベットをstrtolower関数で小文字へ変換し、その後に単語の先頭文字のみucwords関数で大文字に変換して表記を整えています。

また、全ての単語の先頭文字を大文字にするのではなく、「文字列」の先頭のみを大文字にしたい場合は、ucfirst関数を使います。

コード例

// 変換する文字列
$str = "This Is Sample TEXT.";

// 整える前の出力
var_dump($str);

// 小文字への変換を実行
$str = strtolower($str);

// 単語の先頭文字だけ大文字に変換
$str = ucfirst($str);

// 整えた後の出力
var_dump($str);

出力例

// 整える前の出力
string(20) "This Is Sample TEXT."

// 整えた後の出力
string(20) "This is sample text."